Skip to Content
avatar image
Former Member

To Make screen feild read only in SUBSCREEN

Hi All,

In a module pool program have declared a screen using "selection screen begin...... as subscreen" syntax in the top include. Now please note that this is a subscreen inside a screen but declared like report and not using screen painter.

Now I have to make 1 feild of it as input only, but I am unable to modify the feild of the subscreen using syntax "loop at screen" because it applies the loop at the main screen and not at the sub screen.

Can somebody suggest me syntax for that.

Best Regards,

Chandan Dubey

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • Best Answer
    avatar image
    Former Member
    Sep 04, 2008 at 12:35 PM

    Hi,

    In the attributes tab of the screen layout,Choose Input as Not possible option.

    Regards,

    Rama.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Sep 04, 2008 at 10:00 AM

    Hi,

    Write the loop at screen logic in the PBO event of the subscreen

    regards

    padma

    Add comment
    10|10000 characters needed characters exceeded

    • yes, it is possible to do it in the at slection-screen output event.

      REPORT  ztest_sub.
      
      SELECTION-SCREEN BEGIN OF SCREEN 1100 AS SUBSCREEN.
      SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-100.
      
      PARAMETERS: p_matnr TYPE matnr.
      
      SELECTION-SCREEN END OF BLOCK b1.
      SELECTION-SCREEN END OF SCREEN 1100.
      
      
      AT SELECTION-SCREEN OUTPUT.
        LOOP AT SCREEN.
          IF screen-name cs 'P_MATNR'.
            screen-input = 0.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      
      START-OF-SELECTION.
      
        CALL SCREEN 100.
      *&---------------------------------------------------------------------*
      *&      Module  STATUS_0100  OUTPUT
      *&---------------------------------------------------------------------*
      *       text
      *----------------------------------------------------------------------*
      MODULE status_0100 OUTPUT.
        SET PF-STATUS 'YYY'.
      
      ENDMODULE.                 " STATUS_0100  OUTPUT
      *&---------------------------------------------------------------------*
      *&      Module  USER_COMMAND_0100  INPUT
      *&---------------------------------------------------------------------*
      *       text
      *----------------------------------------------------------------------*
      MODULE user_command_0100 INPUT.
        IF sy-ucomm EQ 'BACK'.
          LEAVE TO SCREEN 0.
        ENDIF.
      ENDMODULE.                 " USER_COMMAND_0100  INPUT

      flow logic.

      PROCESS BEFORE OUTPUT.
        CALL SUBSCREEN sub INCLUDING sy-repid '1100'.
        MODULE status_0100.
      *
      PROCESS AFTER INPUT.
        MODULE user_command_0100.

      this is working for me check it once from your side.