ABAP 화면 조작 질문 (subscreen) > Q&A FI 연구소

본문 바로가기

Q&A

Q&A HOME


답변완료 답변 2건의 답변이 등록 되었습니다. 회원검증 ABAP 화면 조작 질문 (subscreen)

페이지 정보

작성자 no_profile 제시카정 쪽지보내기 자기소개 아이디로 검색 전체게시물 조회 1,983회 작성일 17-03-31 10:03

본문

※ T-CODE 가 없는 업무 프로세스 관련 질의는 상황적 설명만 올려 주세요!^^


1. 에러 발생 T-CODE :

 

 

2. SAP 에레 메세지 전체 Text :

 

 

3. 상황적인 설명 :

 

1. 메인스크린에서 버튼클릭시 SUBSCREEN으로 다음과 같은 화면이 팝업됩니다.

2. 라디오버튼 "채권" 선택시


 

3. 라디오버튼 "채무" 선택시


다음과 같이 select options 값이 이동이 됩니다.


SELECTION-SCREEN BEGIN OF SCREEN 0211 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS     PR_B01 RADIOBUTTON GROUP GRB USER-COMMAND UC2.
SELECTION-SCREEN COMMENT 03(10GV_B01_T FOR FIELD PR_B01.
SELECTION-SCREEN POSITION 17.
PARAMETERS     PR_B02 RADIOBUTTON GROUP GRB.
SELECTION-SCREEN COMMENT 19(10GV_B02_T FOR FIELD PR_B02.
SELECTION-SCREEN END OF LINE.

SELECT-OPTIONS SO_KUNNR FOR  KNB1-KUNNR      MODIF ID KUN.
SELECT-OPTIONS SO_LIFNR FOR  LFB1-LIFNR      MODIF ID LIF.

SELECTION-SCREEN END OF SCREEN 0211.


======================================================================


FORM SCREEN_CONTROL .

  LOOP AT SCREEN.
    CASE SCREEN-GROUP1.
      WHEN 'OBL'.
        SCREEN-REQUIRED 2.

      WHEN 'TXT'.
        SCREEN-INTENSIFIED 1.
    ENDCASE.

    CASE SCREEN-GROUP1.
      WHEN 'HID'.
        IF SY-UNAME+0(4<> 'ABAP' AND
           SY-UNAME+0(2<> 'FI'   AND
           SY-UNAME+2(2<> 'IS'   AND
           SY-UNAME+0(2<> 'CO'.
          SCREEN-ACTIVE 0.
        ENDIF.
    ENDCASE.

    IF SCREEN-NAME 'SO_RECDT-LOW'.
      SCREEN-REQUIRED 2.
    ENDIF.

    CASE SCREEN-GROUP1.
      WHEN 'KUN'.
        IF PR_B01 C_X.
        ELSE.
          SCREEN-ACTIVE 0.
        ENDIF.
       WHEN 'LIF'.
         IF PR_B02 C_X.
         ELSE.
           SCREEN-ACTIVE 0.
         ENDIF.
    ENDCASE.

    MODIFY SCREEN.
  ENDLOOP.

ENDFORM.                    " SCREEN_CONTROL


================================================================================

FORM REFRESH_ALV    USING P_GRID    TYPE REF TO CL_GUI_ALV_GRID
                          PT_FCAT   TYPE LVC_T_FCAT
                          PS_LAYOUT TYPE LVC_S_LAYO.


  DATALT_ROW         TYPE LVC_T_ROW.
  DATALS_NO_SC  TYPE LVC_S_ROID,
        LS_ROW_SC TYPE LVC_S_ROW,
        LS_COL_SC TYPE LVC_S_COL.
  DATALS_NO_CELL  TYPE LVC_S_ROID,
        LS_ROW_CELL TYPE LVC_S_ROW,
        LS_COL_CELL TYPE LVC_S_COL.


  CALL METHOD P_GRID->GET_SELECTED_ROWS
    IMPORTING
      ET_INDEX_ROWS LT_ROW.

  CALL METHOD P_GRID->GET_SCROLL_INFO_VIA_ID
    IMPORTING
      ES_ROW_NO   LS_NO_SC
      ES_ROW_INFO LS_ROW_SC
      ES_COL_INFO LS_COL_SC.

  CALL METHOD P_GRID->GET_CURRENT_CELL
    IMPORTING
      ES_ROW_NO LS_NO_CELL
      ES_ROW_ID LS_ROW_CELL
      ES_COL_ID LS_COL_CELL.

*  CALL METHOD P_GRID->SET_FRONTEND_FIELDCATALOG
*    EXPORTING
*      IT_FIELDCATALOG = PT_FCAT[].
*
*  CALL METHOD P_GRID->SET_FRONTEND_LAYOUT
*    EXPORTING
*      IS_LAYOUT = PS_LAYOUT.

  CALL METHOD P_GRID->REFRESH_TABLE_DISPLAY.

  CALL METHOD P_GRID->SET_SELECTED_ROWS
    EXPORTING
      IT_INDEX_ROWS LT_ROW.

  IF GS_ROW_NO   IS NOT INITIAL.
    LS_NO_SC  LS_NO_CELL  GS_ROW_NO.
  ENDIF.

  IF GS_ROW_INFO IS NOT INITIAL.
    LS_ROW_SC LS_ROW_CELL GS_ROW_INFO.
  ENDIF.

  IF GS_COL_INFO IS NOT INITIAL.
    LS_COL_SC LS_COL_CELL GS_COL_INFO.
  ENDIF.

  CLEARGS_ROW_NOGS_ROW_INFOGS_COL_INFO.

  CALL METHOD P_GRID->SET_SCROLL_INFO_VIA_ID
    EXPORTING
      IS_ROW_NO   LS_NO_SC
      IS_ROW_INFO LS_ROW_SC
      IS_COL_INFO LS_COL_SC.

  CALL METHOD P_GRID->SET_CURRENT_CELL_VIA_ID
    EXPORTING
      IS_ROW_NO    LS_NO_CELL
      IS_ROW_ID    LS_ROW_CELL
      IS_COLUMN_ID LS_COL_CELL.

  CALL METHOD CL_GUI_CONTROL=>SET_FOCUS
    EXPORTING
      CONTROL P_GRID.
  CALL METHOD CL_GUI_CFW=>FLUSH.

ENDFORM.                    " REFRESH_ALV


라디오버튼에 따라 서브스크린 사이즈가 달라지는거 같은데요..어디서 설정을 하는건지요..

고정시키기 위해 먼가 값을 따로 설정해줘야 하는건지 궁금합니다.

추천0 비추천0