메뉴 건너뛰기

SAP 한국 커뮤니티



F4 /Serarch help

꿀단지 2011.10.11 20:29 조회 수 : 4881 추천:2

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를 기대하세요. ^ ^

 

번호 제목 글쓴이 날짜 조회 수
82 GR 정보(MIGO) 조회 펑션. 우헤헤 2013.03.04 5102
81 [CLASS] 사용자 DATE FORMAT READ. paran 2013.02.11 4353
80 테이블 Description "BUS_DD03P_GET" 하고 같은 역할하는 EXCEL VBA [2] file Brisky 2012.12.05 4269
79 timestamp 시간변환 file sapjoy 2012.11.07 7397
78 FREE SESSION 체크 sapjoy 2012.09.20 4491
77 PO Item 삭제 Function [2] 양키 2012.08.09 5966
76 LDM 파일을 다운로드 하는 Function [1] 양키 2012.08.09 8541
75 PO를 조회/변경 모드로 조회하는 Function [4] 양키 2012.08.09 4248
74 새로운 세션을 여는 펑션 [3] 긍정 2012.06.21 4033
73 시간계산, time calc, timezone time stamp, [5] sapjoy 2012.02.10 7404
72 스트럭쳐 의 값을 가지고 if 문 사용가능할까요? imgood 2012.02.02 4264
71 [FI-AA] Asset의 description 등. 내역을 변경하려 합니다. 도와 주십시오. [2] 노냐 2011.12.13 4923
70 클래스 특성 리스트 가져 오기 최선 2011.11.08 6673
69 [FUNCTION] - THUSRINFO , 현재 접속되어 있는 SAP 사용자 정보를 가져오는 펑션 [3] 미소 2011.10.13 6387
68 현재 작업 상태 [4] 꿀단지 2011.10.11 4123
» F4 /Serarch help [5] 꿀단지 2011.10.11 4881
66 PGM에서 File생성 및 전송이 가능합니다 [3] 꿀단지 2011.10.11 4742
65 Noraml Sales Order 꿀단지 2011.10.11 4152
64 해당 플랜트/저장위치/제품의 가용수량 체크 함수 꿀단지 2011.10.11 5064
63 제목그대로 window의 registry 값을 갖고 오는 함수입니다. 꿀단지 2011.10.11 3522