Skip to Content
0
Former Member
Dec 04, 2008 at 12:05 PM

LOOP AT SCREEN PROBLEM - make field as output only

1685 Views

PROGRAM 1

 
report ZPROGRAM01
       no standard page heading line-size 255.

DATA:   BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.

start-of-selection.
perform bdc_dynpro      using 'ZDF052_TEST_09' '9000'.
perform bdc_field       using 'BDC_CURSOR'
                              'TEXT2'.
perform bdc_field       using 'BDC_OKCODE'
                              '/00'.
perform bdc_field       using 'TEXT1'
                              'TEXT1'.
perform bdc_field       using 'TEXT2'
                              'TEXT2'.
perform bdc_dynpro      using 'ZDF052_TEST_09' '9000'.
perform bdc_field       using 'BDC_OKCODE'
                              '/EBACK'.
CALL TRANSACTION 'ZMPPTEST' USING BDCDATA
                     MODE   'A'.

*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = PROGRAM.
  BDCDATA-DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.
ENDFORM.

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
    CLEAR BDCDATA.
    BDCDATA-FNAM = FNAM.
    BDCDATA-FVAL = FVAL.
    APPEND BDCDATA.
ENDFORM.

PROGRAM 2

*&---------------------------------------------------------------------*
*& Report  ZPROGRAM_02
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT  ZPROGRAM_02.
DATA : TEXT1 TYPE CHAR10,
       TEXT2 TYPE CHAR10.
DATA  : GT_ITAB TYPE STANDARD TABLE OF DYNPREAD,
        GW_ITAB TYPE                   DYNPREAD.
*&---------------------------------------------------------------------*
*&      Module  STATUS_9000  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_9000 OUTPUT.
  SET PF-STATUS 'ZMENU'.
  PERFORM F_SET_SCREEN.
ENDMODULE.                 " STATUS_9000  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9000 INPUT.
CASE SY-UCOMM.
  WHEN 'BACK'.
    LEAVE PROGRAM.
ENDCASE.
ENDMODULE.                 " USER_COMMAND_9000  INPUT
*&---------------------------------------------------------------------*
*&      Form  F_SET_SCREEN
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM F_SET_SCREEN .
LOOP AT SCREEN.
  IF SCREEN-NAME CS 'TEXT2'.
    SCREEN-INPUT = 0.
    MODIFY SCREEN.
  ENDIF.
ENDLOOP.
ENDFORM.                    " F_SET_SCREEN

Scenario

Here i have one module pool program having two text boxes. Another program i am using CALL TRANSACTION to load values to that screen at the same time i have to disable the TEXT2 field.

Problem

Now the problem is, i cant get the value on the screen but the field is disabled.

i need the value as well as the field should be non-editable. Help to fix it up.

Thanks in advance.

Florian