Skip to Content
author's profile photo
Former Member

Subscreen

I need to define a subscreen which needs to be called conditionally from main screen (Based on the button in Mainscreen subscreen needs to be called).. How do I handle that? Can somebody provide a sample code logic.. When i try to display subscreen unconditionally, I get 'Enter transaction code' message.

Main screen

Matnr

subscreen

Material details

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

2 Answers

  • Oct 04, 2005 at 03:24 AM
    • A demo program to create subscreen in your ABAP Program

    • This report will display the user last login date and time.

    • Subscreen selection 1 : User Name

    • 2 : Last Login Date

    • 3 : Class Belong To

    REPORT ZSUBSCREEN.
    
     TABLES: USR02,       "Logon data
             SSCRFIELDS.  "FIELDS ON SELECTION SCREENS
     *---------------------------------------------------------------
     * SUBSCREEN 1
     *---------------------------------------------------------------
     SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
     SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-010.
        SELECT-OPTIONS: USERNAME FOR USR02-BNAME.
     SELECTION-SCREEN END OF BLOCK B1.
     SELECTION-SCREEN END OF SCREEN 100.
    
     *---------------------------------------------------------------
     * SUBSCREEN 2
     *---------------------------------------------------------------
     SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
     SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-020.
        SELECT-OPTIONS: LASTLOGI FOR USR02-TRDAT.
     SELECTION-SCREEN END OF BLOCK B2.
     SELECTION-SCREEN END OF SCREEN 200.
    
     *---------------------------------------------------------------
     * SUBSCREEN 3
     *---------------------------------------------------------------
     SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
     SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-030.
        SELECT-OPTIONS: CLASSTYP FOR USR02-CLASS.
     SELECTION-SCREEN END OF BLOCK B3.
     SELECTION-SCREEN END OF SCREEN 300.
    
     * STANDARD SELECTION SCREEN FOR SCROLLING LEFT AND RIGHT
     SELECTION-SCREEN: FUNCTION KEY 1,
                       FUNCTION KEY 2.
    
     SELECTION-SCREEN: BEGIN OF TABBED BLOCK SUB FOR 15 LINES,
                       END OF BLOCK SUB.
    
     START-OF-SELECTION.
         SELECT * FROM USR02 WHERE BNAME IN USERNAME
                               AND ERDAT IN LASTLOGI
                               AND CLASS IN CLASSTYP.
            WRITE: / 'User ', USR02-BNAME,
                     'Last Login Date ', USR02-TRDAT,
                     'Last Login Time ', USR02-LTIME,
                     'CLASS ', USR02-CLASS.
         ENDSELECT.
     END-OF-SELECTION.
    
     INITIALIZATION.
     * SCREEN ICON LEFT AND RIGHT
       SSCRFIELDS-FUNCTXT_01 = '@0D@'.
       SSCRFIELDS-FUNCTXT_02 = '@0E@'.
       SUB-PROG = SY-REPID.
       SUB-DYNNR = 100.
    
     AT SELECTION-SCREEN.
       CASE SY-DYNNR.
    
         WHEN 100.
           IF SSCRFIELDS-UCOMM = 'FC01'.
             SUB-DYNNR = 300.
           ELSEIF SSCRFIELDS-UCOMM = 'FC02'.
             SUB-DYNNR = 200.
           ENDIF.
    
         WHEN 200.
           IF SSCRFIELDS-UCOMM = 'FC01'.
             SUB-DYNNR = 100.
           ELSEIF SSCRFIELDS-UCOMM = 'FC02'.
             SUB-DYNNR = 300.
           ENDIF.
    
         WHEN 300.
           IF SSCRFIELDS-UCOMM = 'FC01'.
             SUB-DYNNR = 200.
           ELSEIF SSCRFIELDS-UCOMM = 'FC02'.
             SUB-DYNNR = 100.
           ENDIF.
       ENDCASE.
    

    Hope this helps.

    Add comment
    10|10000 characters needed characters exceeded

  • author's profile photo
    Former Member
    Oct 04, 2005 at 08:16 AM

    Hi

    You can manage all in the logic of main screen, but I don't undestansd if you always or sometimes want to call a subscreen. Because if you have inserted a subarea in your main screen, you always have to call subscreen, so you can only decide which subscreen have to be loaded.

    MAIN SCREEN:

    PROCESS PBO.

    MODULE CHECK_SUBSCREEN.

    CALL SUBSCREEN SUBAREA INCLUDING V_PROG V_DYNNR.

    PROCESS PAI.

    CALL SUBSCREEN SUBAREA.

    MODULE OK-CODE.

    MODULE CHECK_SUBSCREEN.

    CHECK V_DYNNR IS INITIAL.

    V_PROG = SY-REPID.

    V_DYNNR = 9001.

    ENDMODULE.

    MODULE OK-CODE.

    CASE OK_CODE.

    WHEN CHANGE_SUBSCREEN.

    V_PROG = SY-REPID.

    V_DYNNR = 9002.

    ENDMODULE.

    Max

    Add comment
    10|10000 characters needed characters exceeded