메뉴 건너뛰기

SAP 한국 커뮤니티

기본적으로 테이블 컨트롤에서 F4를 이용하면 선택된 데이터 1개만 가지고 옵니다.


그런데,


테이블컨트롤에서 해당라인 자재코드 선택시 자재명도 동시에 변경하고 싶다면...


 


SCREEN 0100


...


*-POV -------------------
PROCESS ON VALUE-REQUEST.
  FIELD gt_list-matnr MODULE value_matnr.


 


 


*-----------------------------------


module value_matnr input.
**
  DATA: BEGIN OF lt_matnr OCCURS 0,
          matnr LIKE makt-matnr,
          matwa TYPE makt-maktx,
        END   OF lt_matnr.


 


  CLEAR: lt_matnr, lt_matnr[].
  LOOP AT gt_310.
       MOVE-CORRESPONDING gt_310 TO lt_matnr.
       APPEND lt_matnr.
       CLEAR: lt_matnr.
  ENDLOOP.


 


 


** 선택한 필드의 라인과 필드명을 구함
  DATA: cs_field(30),
        cs_line LIKE sy-tabix.


 


  GET CURSOR FIELD cs_field LINE cs_line.
  IF cs_field IS INITIAL.
     g_cursor_field = g_cursor_field.
     g_cursor_line  = g_cursor_line.
  ELSE.
     g_cursor_field = cs_field.    "선택한 필드명
     g_cursor_line  = cs_line.    "선택한 라인
  ENDIF.


 



**
  DATA: f4_return LIKE ddshretval OCCURS 0 WITH HEADER LINE,
        l_dynprofield TYPE help_info-dynprofld.


 


  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
       EXPORTING
           retfield         = 'MATNR'         "F4에서 선택하면 가져오는 값
           dynpprog         = sy-cprog     "프로그램명
           dynpnr           = sy-dynnr       "화면명
           dynprofield      = 'MATNR'      "테이블컨트롤에 복사되어 들어가는 값 필드
           window_title     = '자재선택'   "화면 제목
           value_org        = 'S'
       TABLES
           value_tab        = lt_matnr        "possible entry로 띄워주는 table 
           return_tab       = f4_return       
      EXCEPTIONS
           PARAMETER_ERROR  = 1
           NO_VALUES_FOUND  = 2
           OTHERS           = 3 .


 



**
DATA: l_stepl LIKE  sy-stepl.


* 이 부분 빠지면 테이블컨트롤에서 엄한 곳에 값이 뿌려지게 됩니다.


  CALL FUNCTION 'DYNP_GET_STEPL'     
    IMPORTING


      povstepl        = l_stepl       "화면에 적용될 라인 위치 구함


    EXCEPTIONS
      stepl_not_found = 0
      OTHERS          = 0.


 


 


** F4에서 선택한 자재코드로 자재명을 구하는 부분
DATA: dynpro_values TYPE TABLE OF dynpread,
      field_value LIKE LINE OF dynpro_values.


 


    CHECK f4_return IS NOT INITIAL.
    CLEAR: f4_return.
    READ TABLE f4_return INDEX 1.


    READ TABLE lt_matnr WITH KEY matnr = f4_return-fieldval.   
    CLEAR:  field_value, dynpro_values.
    REFRESH dynpro_values.


 


    field_value-fieldname  = 'gt_list-MATNR'.    "자재코드
    field_value-fieldvalue = lt_matnr-matnr.
    field_value-stepl      = l_stepl.
    APPEND field_value TO dynpro_values.


 


    field_value-fieldname  = 'gt_list-MAKTX'.   "자재명
    field_value-fieldvalue = lt_matnr-matwa.
    field_value-stepl      = l_stepl.
    APPEND field_value TO dynpro_values.


 



    CALL FUNCTION 'DYNP_VALUES_UPDATE'    "테이블컨트롤 해당 라인에 반영
      EXPORTING
        dyname     = sy-cprog
        dynumb     = sy-dynnr
      TABLES
        dynpfields = dynpro_values.
    IF sy-subrc <> 0.
    ENDIF.



endmodule.                 " value_matnr  INPUT


 



 

번호 제목 글쓴이 날짜 조회 수
487 FTP 호출 프로그램 예제 [2] sapjoy 2014.11.28 5666
486 sap 화면 웹(web)으로 띄우기(ITS, SAPGUI HTML) [4] file sapjoy 2014.11.14 7221
485 Selection Screeen에서 저장버튼 Disable 처리 [3] 양키(이경환) 2014.11.13 3758
484 릴리즈된 cts 복구 하기 Program : RDDIT076 [2] sapjoy 2014.11.10 7339
483 스크린을 생성하여 팝업창을 띄웠는데요~닫기가 안되요 [3] 흐르는강물처럼 2014.10.06 5383
482 User Profile 설정하기 [4] file 아밥뽀 2014.09.21 2757
481 드롭다운 리스트 key값 조회하기 [4] file 아밥뽀 2014.09.21 3341
480 백그라운드로 프로그램 실행하기 [5] file 아밥뽀 2014.09.21 4843
479 BDC 수행시 COMMAND 명령어 sapjoy 2014.09.18 3301
478 명령어 결과에 따른 SY-SUBRC [5] sapjoy 2014.09.16 6975
477 테이블 inconsistency check 프로그램 [2] file sapjoy 2014.09.11 2111
476 SQL 실행 프로그램 - ZSQL [2] file 아밥뽀 2014.08.23 4707
475 SYST 시스템 변수 정리 [5] 아밥뽀 2014.08.23 17075
474 앞의 0으로 시작하는 문자 모두 지우기 sapjoy 2014.08.20 3357
473 archive 관련 transaction code [1] sapjoy 2014.08.20 2039
472 AL08에서 SAP 서버(인스턴스)별 사용자 확인 [1] sapjoy 2014.08.19 2306
471 SAP 모니터링 T-CODE [11] 아밥뽀 2014.07.08 8716
470 SAPLINK - 소스 업&다운 프로그램 입니다. [5] file abaper_qj 2014.06.18 6997
469 ALV 컬럼 고정하기 [5] file sapjoy 2014.06.18 4598
468 테이블 데이터 엑셀 업로드 프로그램 sapjoy 2014.06.17 4058