Skip to Content
0
A S
May 21, 2020 at 05:50 AM

Dynpro Error dialog programming

105 Views

Im trying to create 2 screens, screen 9002 is non editable and screen 9003 is editable, im using different variables but same ztables for these 2 screens. Im displaying the screen 9003 frm 9001 screen PAI.

When I called screen 9003 it is throwing me Dyn Pro error, the code is as follows

*&---------------------------------------------------------------------*
*& Include MZDLGPROG_03_REPORTTOP                   - Module Pool      SAPMZDLGPROG_03_REPORT
*&---------------------------------------------------------------------*
PROGRAM SAPMZDLGPROG_03_REPORT.

TABLES: ZEKKO_03,
        ZEKPO_03.

CONTROLS: TC_ZEKPO TYPE TABLEVIEW USING SCREEN 9002,  ""for display
          TC_ZEKPO2 TYPE TABLEVIEW USING SCREEN 9003. ""for edit


DATA : OK_CODE   TYPE SY-UCOMM,
       GT_ZEKKO  TYPE TABLE OF ZEKKO_03,
       GWA_ZEKKO TYPE ZEKKO_03,
       GT_ZEKPO  TYPE TABLE OF ZEKPO_03,
       GWA_ZEKPO like LINE OF gt_zekpo,
       GV_EBELN  TYPE ZEBELN_EL.

DATA : 
       GT_ZEKKO2  TYPE TABLE OF ZEKKO_03,
       GWA_ZEKKO2 TYPE ZEKKO_03,
       GT_ZEKPO2  TYPE TABLE OF ZEKPO_03,
       GWA_ZEKPO2 like LINE OF gt_zekpo.


DATA: f1 TYPE char1,
      gv_tabix TYPE sy-tabix.
*&---------------------------------------------------------------------*
*& Include          MZDLGPROG_03_REPORTO01
*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*& Module STATUS_9001 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_9001 OUTPUT.
 SET PF-STATUS 'ZSTATUS'.
 SET TITLEBAR 'ZTITLE'.
ENDMODULE.

*&---------------------------------------------------------------------*
*& Module STATUS_9002 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_9002 OUTPUT.
 SET PF-STATUS 'ZSTATUS'.
 SET TITLEBAR 'ZTITLE1'.
ENDMODULE.

*&---------------------------------------------------------------------*
*& Module STATUS_9002 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE STATUS_9003 OUTPUT.
 SET PF-STATUS 'ZSTATUS'.
 SET TITLEBAR 'ZTITLE2'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module FETCH_DATA OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE FETCH_DATA OUTPUT.

if f1 <> 1.

SELECT ebeln lifnr ekorg ekgrp bukrs waers zterm zdesc FROM zekko_03
  INTO CORRESPONDING FIELDS OF TABLE gt_zekko
  WHERE ebeln = gwa_zekko-ebeln.

SELECT SINGLE ebeln lifnr ekorg ekgrp bukrs waers zterm zdesc FROM zekko_03
  INTO CORRESPONDING FIELDS OF gwa_zekko
  WHERE ebeln = gwa_zekko-ebeln.

READ TABLE gt_zekko INTO gwa_zekko INDEX sy-tabix.

SELECT EBELP MATNR werks LGORT menge meins
  INTO CORRESPONDING FIELDS OF TABLE gt_zekpo FROM zekpo_03
   WHERE ebeln = gwa_zekko-ebeln.

ELSE.

  IF gv_tabix is NOT INITIAL.
      DELETE gt_zekko INDEX gv_tabix.
      delete gt_zekpo INDEX gv_tabix.
  ENDIF.
endif.



ENDMODULE.

*&---------------------------------------------------------------------*
*& Module FETCH_DATA_EDIT OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE FETCH_DATA_EDIT OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.

  SELECT ebeln lifnr ekorg ekgrp bukrs waers zterm zdesc FROM zekko_03
  INTO CORRESPONDING FIELDS OF TABLE gt_zekko
  WHERE ebeln = gwa_zekko-ebeln.

SELECT SINGLE ebeln lifnr ekorg ekgrp bukrs waers zterm zdesc FROM zekko_03
  INTO CORRESPONDING FIELDS OF gwa_zekko
  WHERE ebeln = gwa_zekko-ebeln.

READ TABLE gt_zekko INTO gwa_zekko INDEX sy-tabix.

SELECT EBELP MATNR werks LGORT menge meins
  INTO CORRESPONDING FIELDS OF TABLE gt_zekpo FROM zekpo_03
   WHERE ebeln = gwa_zekko-ebeln.

ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9003  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9003 INPUT.
*  CASE ok_code.
*
*  ENDCASE.

ENDMODULE.
*&---------------------------------------------------------------------*
*& Include          MZDLGPROG_03_REPORTI01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9002  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9002 INPUT.
  CASE OK_CODE.
    WHEN 'BACK'.
      SET SCREEN 0.
      LEAVE TO SCREEN 0.

       WHEN 'DEL'.
    GET CURSOR LINE gv_tabix.
    f1 = 1.
   call screen 9002.

*      LOOP AT gt_zekpo WHERE MARK = 'X'.
*        DELETE gt_zekpo.
*      ENDLOOP.
*      IF SY-SUBRC <> 0.
*        GET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
*        SET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
*        IF FLD CP 'GT_ZEKPO*' AND SY-SUBRC = 0.
*          LINNO = LINNO + TC_ZEKPO-TOP_LINE - 1.
*          DELETE GT_ZEKPO INDEX LINNO.
*          TC_ZEKPO-LINES = TC_ZEKPO-LINES - 1.
*        ENDIF.
*      ENDIF.


*      READ TABLE gt_zekko INTO gwa_zekko WITH KEY gwa_zekko-ebeln.
*       if gwa_zekko-ebeln is NOT INITIAL.
*          delete ZEKKO_03 FROM TABLE gt_zekko.
*      delete zekpo_03 FROM TABLE gt_zekpo.
*      endif.

  ENDCASE.

ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  MODIFY_IT_ZEKPO  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE MODIFY_GT_ZEKPO INPUT.
  MODIFY gt_zekpo2 FROM gwa_zekpo2
  INDEX TC_ZEKPO2-CURRENT_LINE.

ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9001  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_9001 INPUT.



  CASE OK_CODE.
    WHEN 'BACK' OR 'EXIT' OR 'CANC'.
      LEAVE PROGRAM.
    WHEN 'DELETE'.
      IF GWA_ZEKKO-EBELN IS INITIAL .
        MESSAGE 'Please enter document number' TYPE 'E'.
      ELSE.
        CALL SCREEN 9002.
      ENDIF.

    WHEN 'DISPLAY'.
            IF GWA_ZEKKO-EBELN IS INITIAL .
        MESSAGE 'Please enter document number' TYPE 'E'.
      ELSE.
        CALL SCREEN 9002.
      ENDIF.

    WHEN 'CREATE'  .
      CALL SCREEN 9003.        <<<< to display editable screen


  ENDCASE.

ENDMODULE.

Attachments

dynrpo-error.png (25.4 kB)
dynrpo-error2.png (55.0 kB)