메뉴 건너뛰기

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


 



 

번호 제목 글쓴이 날짜 조회 수
267 SAP Table Reference(원본 연관관계) [5] file 죽돌이 2009.01.28 3482
266 한방에 로그오프하기 [9] 김지성 2009.01.02 4864
265 인터널 테이블 또는 테이블 구조 확인 [2] sapjoy 2008.12.29 5078
264 펑션에서 지금 웹딘프로(Web Dynpro) 환경인지 아는 방법 대략나 2008.12.17 6134
263 New ABAP Debugger Demo Wise 멘토 2008.12.15 5108
262 ABAP Color 색상표 [7] 웰컴 2008.12.12 9847
261 WIN XP SP2에서 SAP SHOW NOTES 보이게 하기 [1] Wise 멘토 2008.11.25 4859
260 ABAP 구문 총정리 [39] file Wise 멘토 2008.11.24 17171
259 텍스트파일 다운받을때 유니코드 문제 해결 [8] file 솔로몬 2007.06.28 13798
258 Abap Eclipse Editor [5] file franticlion 2008.11.03 6168
257 ABAP FAQs [3] 해처리 2008.10.24 3991
256 Screen painter가 열리지 않는 경우, tip [2] darkangel 2008.10.21 5565
255 Abap에서 ftp command 를 실행시킬수 있는지 [1] 쿠도스 2008.10.09 4435
254 ALV 버퍼 CLEAR 프로그램 [10] sapjoy 2008.09.25 7383
253 여러 DATE 변환 TIP [9] file 푸른창공 2008.09.11 5061
252 ABAP Program Tips v3 [13] file 2008.09.04 5828
251 Open SQL 문법 정리 [14] SAP질 중 2008.08.20 10852
250 abap email report source [7] file SAP질 중 2008.08.22 4706
249 <b>[완료]</b>New abap editor block selection 기능 아시는분... [11] file 숨어푸 2008.08.01 5039
» 테이블컨트롤에서 F4 값 변경시 다른 필드 값도 변경하기 F4IF_INT_TABLE_VALUE_REQUEST [1] 한해동안 2008.07.24 9421