메뉴 건너뛰기

SAP 한국 커뮤니티



위 쪽에 있는 그림에서 빨간 박스에 둘려 쌓여져 있는 부분을 활성활 시키고 싶습니다.


 


즉, 행추가 버튼을 눌러 추가된 행에 사원번호를 임의로 입력하고 싶습니다.


 


그러기 위해서는 빨간 박스 부분을 활성화 시켜주어야 하는데  어떻게 해야 저부분을 활성화 시킬 수 있을까요??


 


참고로 P필드 값이 'I'로 들어간 행은 행추가 버튼을 눌러 행을 추가한 행입니다.


 


한가지 질문을 더 드리겠습니다.


 


메뉴에 있는 저장 버튼을 눌러 현재 테이블 컨트롤 상태를 데이터를 불러온 테이블인 ZSADBLO에 UPDATE하고 싶습니다.


 


' ' -> DB에서 불러온 데이터


'I' -> 행추가 버튼을 눌러 추가한 행


'U' ->DB에서 불러온 데이터가 변경되었을 때


'D' ->DB에서 불러온 데이터에 행 삭제 버튼을 눌렀을 때


 


POINT (화면상에 보이는 P 필드)에  위와 같은 조건을 주고 UPDATE 하려면 어떻게 하나요??


 


제가 생각한 것은


 


(저장버튼의 OK_CODE는 SAVE입니다.)


 


OK_CODE가 SAVE면


 


LOOP AT IT_ZSADBLO INTO WA_ZSADBLO WHERE NOT POINT IS INITIAL.


   CASE POINT


      WHEN 'I'


        INSERT 구문


      WHEN 'U'


        UPDATE 구문


      WHEN 'D'


        DLELTE 구문


ENDLOOP.


 


이렇게 해도 되는 건가요??


 


답변 부탁드리겠습니다.^^


 


아래는 소스 코드 입니다.


 


--------------------------------------------------------------------------------------------------------------


PBO


 



PROCESS BEFORE OUTPUT.


  MODULE STATUS_0100.


  MODULE SET_TC_LINES.


  LOOP AT IT_ZSADBLO INTO WA_ZSADBLO
                     WITH CONTROL TC_SADBLO.
    MODULE MARK_SEND.
  ENDLOOP.


 


 


PAI


 


PROCESS AFTER INPUT.


  MODULE EXIT AT EXIT-COMMAND.


  LOOP AT IT_ZSADBLO.


     FIELD MARK MODULE MODIFY_INFO ON REQUEST.


    CHAIN.
      FIELD :
              WA_ZSADBLO-NAME,
              WA_ZSADBLO-POINT,
              WA_ZSADBLO-AGE,
              WA_ZSADBLO-SAPART,
              WA_ZSADBLO-SEX,
              WA_ZSADBLO-PLACE.


      MODULE MODIFY_DATA ON CHAIN-REQUEST.


    ENDCHAIN.
  ENDLOOP.



  MODULE USER_COMMAND_0100.


 


 


~TOP


 


 


*&---------------------------------------------------------------------*
*& Include MZTC_2TOP                                         모듈풀    *
*&                                                                     *
*&---------------------------------------------------------------------*


PROGRAM  SAPMZTC_2 MESSAGE-ID ZMESSAGE_SADBLO.


CONTROLS TC_SADBLO TYPE TABLEVIEW
                   USING SCREEN '0100'.


TABLES: ZSADBLO.


DATA: BEGIN OF WA_ZSADBLO,
        POINT(1),
        MARK(1),
        SANUM LIKE ZSADBLO-SANUM,
        NAME LIKE ZSADBLO-NAME,
        AGE LIKE ZSADBLO-AGE,
        SAPART LIKE ZSADBLO-SAPART,
        SEX LIKE ZSADBLO-SEX,
        PLACE LIKE ZSADBLO-PLACE,
      END OF WA_ZSADBLO.


DATA: IT_ZSADBLO LIKE TABLE OF WA_ZSADBLO.



DATA: OK_CODE LIKE SY-UCOMM,
      SAVE_OK LIKE OK_CODE.



DATA: MARK.


DATA: WA_ZSADBLO1 LIKE WA_ZSADBLO.


 


 


 


 


~O01


 


*&---------------------------------------------------------------------*
*&  Include           MZTC_2O01                                        *
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS 'TITLE'.



ENDMODULE.                 " STATUS_0100  OUTPUT



*&---------------------------------------------------------------------*
*&      Module  MARK_SEND  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE MARK_SEND OUTPUT.


  MARK = WA_ZSADBLO-MARK.


ENDMODULE.                 " MARK_SEND  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  SET_TC_LINES  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE SET_TC_LINES OUTPUT.


  DESCRIBE TABLE IT_ZSADBLO LINES TC_SADBLO-LINES.


ENDMODULE.                 " SET_TC_LINES  OUTPUT


 


 


 


 


 


~I01


 


*&---------------------------------------------------------------------*
*&  Include           MZTC_2I01                                        *
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  EXIT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE EXIT INPUT.


  CASE OK_CODE.
    WHEN 'BACK'.
      LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
      LEAVE PROGRAM.
    WHEN 'CANCEL'.
      LEAVE TO SCREEN 0.
  ENDCASE.



ENDMODULE.                 " EXIT  INPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.


  SAVE_OK = OK_CODE.
  CLEAR OK_CODE.


  CASE SAVE_OK.


    WHEN 'PLAY'.
      CLEAR OK_CODE.
      SELECT *
        INTO CORRESPONDING FIELDS OF TABLE IT_ZSADBLO
        FROM ZSADBLO.



    WHEN 'SAVE'.



    WHEN 'ADDR'.
      CLEAR WA_ZSADBLO.
      WA_ZSADBLO-POINT = 'I'.
      INSERT WA_ZSADBLO INTO TABLE IT_ZSADBLO.



    WHEN 'DELR'.


      LOOP AT IT_ZSADBLO INTO WA_ZSADBLO WHERE MARK = 'X'.
        IF WA_ZSADBLO-POINT = '' OR WA_ZSADBLO-POINT = 'U'.
          WA_ZSADBLO-POINT = 'D'.


          MODIFY IT_ZSADBLO FROM WA_ZSADBLO.



        ELSEIF WA_ZSADBLO-POINT = 'I'.
          DELETE IT_ZSADBLO WHERE MARK = 'X'.



        ENDIF.


 


      ENDLOOP.


      IF SY-SUBRC <> 0.
        MESSAGE S018.
      ENDIF.


 


  ENDCASE.


ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Module  MODIFY_DATA  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE MODIFY_DATA INPUT.


 



  WA_ZSADBLO-POINT = 'U'.


  MODIFY IT_ZSADBLO FROM WA_ZSADBLO
                    INDEX TC_SADBLO-CURRENT_LINE.



ENDMODULE.                 " MODIFY_DATA  INPUT
*&---------------------------------------------------------------------*
*&      Module  MODIFY_INFO  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE MODIFY_INFO INPUT.


  IF NOT MARK IS INITIAL.


    LOOP AT IT_ZSADBLO INTO WA_ZSADBLO1.
      CLEAR WA_ZSADBLO1-MARK.
      MODIFY IT_ZSADBLO FROM WA_ZSADBLO1.
    ENDLOOP.


  ENDIF.


  WA_ZSADBLO-MARK = MARK.



  MODIFY IT_ZSADBLO FROM WA_ZSADBLO
                    INDEX TC_SADBLO-CURRENT_LINE TRANSPORTING MARK.
ENDMODULE.                 " MODIFY_INFO  INPUT


 

번호 제목 글쓴이 날짜 조회 수
5867 <img src=3.gif>또다른 질문 엑셀 파일 컨트롤.... 선긋기 가능한가요? [7] 돌맹이 2010.04.22 3079
5866 엑셀파일 업로드 샘플 소스 좀 부탁드립니다. [5] 나도아밥퍼 2007.07.25 3078
5865 ABAP 프로그램 다운로드(Backup?) 김지성 2007.04.20 3078
5864 [요청]if문에서 or 조건을 대신할 방안은?.. [3] sagar 2008.04.18 3073
5863 <b>[완료]</b><b>[완료]</b>Smartform으로 작성된 발주서를 멜로 전송시 본문 내용 입력방법.. [2] 김화영 2007.08.23 3073
5862 <b>[완료]</b>[왕초보]data 선언과 tables선언의 차이? [6] 해물파전 2008.11.20 3072
5861 [요청]se11 table에서 일련번호 자동증가 속성이 있는지? [2] 김화영 2008.02.22 3071
5860 [re] 고객 위탁 재고 Table에 대한 질문 [2] file sapjoy 2007.03.05 3070
5859 <img src=3.gif>IF 조건문에 받아온 값을 포함 시켜 조건을 일치시키는 방법이 궁금합니다. [5] DIB 2011.02.09 3066
5858 [요청]Smartforms 으로 출력할 때 글자가 잘리는 현상 [1] Yang 2009.01.29 3065
5857 <b>[완료]</b>SPLITTER container에서 크키조정이 가능한가요? [6] kan145 2008.05.09 3063
5856 CBO table의 Key 개수문제... [4] DevCon 2007.06.12 3062
5855 운영자님~abap oop에대해서 질문입니다~ 홍성종 2007.02.05 3062
5854 [요청]'BAPI_COPAACTUALS_POSTCOSTDATA' 에서 리턴값? [2] 다급 2008.08.01 3059
5853 [요청]REUSE_ALV_HIERSEQ_LIST_DISPLAY에서 EXPAND [5] file 김지성 2008.05.09 3058
5852 <img src=2.gif>혹시 특정기간 평균 환율을 구해주는 함수가 있나요... 혹시... [3] 태사성 2010.09.08 3057
5851 <img src=3.gif>ALV에 REFRESH 버튼 추가 방법 문의 [6] 모포 2010.06.17 3057
5850 <b>[완료]</b> ALV 색상에 대한 질문입니다. [12] ABAP짱! 2008.05.23 3055
5849 [re] 필드심볼에 대해 질문올립니다.. [3] file sapjoy 2007.01.26 3055
5848 <img src=3.gif border=0>REUSE_ALV_FIELDCATALOG_MERGE 사용시 인터널테이블 수정했는데요.. [3] 피크민 2009.05.08 3053