Serarch help를 만들고 싶지만, 어떤 이유에서든지
만들지 못하고 있을 때, 괴롭죠?
그런 경우 중 하나가 여러 테이블에 걸쳐있는 필드
들을 가져와서 F4 스크린에 보여줘야 할 때입니다.
긴 말 필요없습니다.
다음 예제를 보시면 머릿속이 시원합니다.
REPORT YTEST5 .
TABLES: MARA, MAKT.
PARAMETERS: MATNR(18) TYPE C,
MAKTX(40) TYPE C.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR MATNR.
PERFORM POV_MATNR.
*&---------------------------------------------------------------------*
*& Form POV_MATNR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM POV_MATNR.
DATA : SELECTFIELD LIKE HELP_INFO-FIELDNAME,
IT_FIELDS LIKE HELP_VALUE OCCURS 0 WITH HEADER LINE,
SELECT_VALUE LIKE HELP_INFO-FLDVALUE,
LD_TABIX LIKE SY-TABIX.
CLEAR: SELECTFIELD, IT_FIELDS, SELECT_VALUE, LD_TABIX.
REFRESH: IT_FIELDS.
* F4를 눌렀을 때 보여지는 필드 선언.
DATA : BEGIN OF IT_VALUE OCCURS 0,
MATNR LIKE MARA-MATNR,
MAKTX LIKE MAKT-MAKTX,
END OF IT_VALUE.
* Help List를 테이블에서 가져온다.
SELECT * FROM MARA.
CLEAR: MAKT.
SELECT SINGLE * FROM MAKT WHERE MATNR = MARA-MATNR.
IT_VALUE-MATNR = MARA-MATNR.
IT_VALUE-MAKTX = MAKT-MAKTX.
APPEND IT_VALUE. CLEAR IT_VALUE.
ENDSELECT.
IF SY-DBCNT EQ 0.
MESSAGE E000(ZLGM) WITH '데이터가 없습니다.'.
ENDIF.
*아래 부분이 F4를 눌렀을 때, Hit List를 보여준다.
IT_FIELDS-TABNAME = 'MARA'.
IT_FIELDS-FIELDNAME = 'MATNR'.
IT_FIELDS-SELECTFLAG = 'X'.
APPEND IT_FIELDS.
IT_FIELDS-TABNAME = 'MAKT'.
IT_FIELDS-FIELDNAME = 'MAKTX'.
IT_FIELDS-SELECTFLAG = ' '.
APPEND IT_FIELDS.
CALL FUNCTION 'HELP_VALUES_GET_NO_DD_NAME'
EXPORTING
SELECTFIELD = SELECTFIELD
IMPORTING
IND = LD_TABIX
SELECT_VALUE = SELECT_VALUE
TABLES
FIELDS = IT_FIELDS
FULL_TABLE = IT_VALUE
EXCEPTIONS
FULL_TABLE_EMPTY = 1
NO_TABLESTRUCTURE_GIVEN = 2
NO_TABLEFIELDS_IN_DICTIONARY = 3
MORE_THEN_ONE_SELECTFIELD = 4
NO_SELECTFIELD = 5
OTHERS = 6.
CHECK NOT LD_TABIX IS INITIAL.
READ TABLE IT_VALUE INDEX LD_TABIX.
MATNR = SELECT_VALUE.
ENDFORM. " POV_MATNR
속편, DYNP_VALUES_READ와 DYNP_VALUES_UPDATE를 기대하세요. ^ ^
댓글 5
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
82 | BAPI Function 검색 사이트 [10] | 홍성현 | 2007.08.08 | 5785 |
81 | 유용한 날짜 펑션들....(펌) [17] | 하늘사랑 | 2007.07.04 | 16630 |
80 | 현재 떠있는 화면에서 특정 필드의 값을 읽어오는 함수 및 방법 [8] | Delight | 2008.04.28 | 9915 |
79 | FUNCTION MODULES [27] | sapjoy | 2007.03.29 | 4485 |
78 | 유용한 Function 올려봅니다. [30] | 김지성 | 2007.04.17 | 9879 |
77 | POPUP관련함수들 [14] | Delight | 2008.04.30 | 4771 |
76 | ABAP 문법 사용법 정리 [60] | Delight | 2008.04.30 | 7685 |
75 | Calling RFC Function Modules in ABAP [12] | SARA | 2007.04.25 | 6104 |
74 | Currency 관련한 펑션 (DB 저장할때와 화면표시할때) [2] | 밤톨™ | 2008.03.05 | 5515 |
73 | Function 자료 [13] | 밥퍼 | 2007.04.25 | 4765 |
72 | Holiday 와 Workingday 관련 펑션 [1] | 밤톨™ | 2008.03.05 | 4779 |
71 | 년, 개월, 일 계산 [9] | 첼시 | 2008.02.01 | 5728 |
70 | 왕기초 펑션 [18] | 냐하하 | 2007.11.30 | 4489 |
69 | LDM 파일을 다운로드 하는 Function [1] | 양키 | 2012.08.08 | 8449 |
68 | 새로운 세션을 여는 펑션 [3] | 긍정 | 2012.06.21 | 4020 |
» | F4 /Serarch help [5] | 꿀단지 | 2011.10.11 | 4878 |
66 | 암호화 function [14] | magicsy69 | 2008.06.03 | 7352 |
65 | RFC [18] | 아밥퍼 | 2008.06.07 | 5983 |
64 | 기본적인 Function 모음입니다. [36] | Pioneer | 2007.11.26 | 4500 |
63 | 유용한 Function 모음 [9] | 박성민 | 2007.11.22 | 4208 |
아 정말 감사합니다^^;