Skip to Content
0
A S
May 20, 2020 at 07:49 PM

delete row issue in table control

131 Views Last edit May 20, 2020 at 07:53 PM 2 rev

Im doing dialog programming with 2 screens created. First screen contains zebeln field with delete button, second screen contains fields of zekko_03 and table control of zekpo_03. Two issues i encountered:

First, when doing select statement for header it prompt error saying data type not compatible.

Secondly, there are issues with table control delete (delete button function code 'DEL'), i looked up several online not working for my case, including the following logic.

The tables i used are as follows

error1.png

tbl-po-header.png

tbl-po-line.png

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

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 TYPE ZEKPO_03,
       GV_EBELN  TYPE ZEBELN_EL,
       MARK TYPE CE_MARK,
       gv_flag TYPE char1.


CONTROLS: TC_ZEKPO TYPE TABLEVIEW USING SCREEN 9002.

DATA: f1 TYPE char1.
*&---------------------------------------------------------------------*
*& 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 FETCH_DATA OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE FETCH_DATA OUTPUT.


if f1 <> 1.

SELECT ebeln lifnr ekorg ekgrp bukrs waers zterm zdesc FROM zekko_03 INTO TABLE gt_zekko. <<<< issue with this select statement 

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.


if f1 = 1.

  IF sy-tabix is NOT INITIAL.
      DELETE gt_zekko INDEX sy-tabix.
      delete gt_zekpo INDEX sy-tabix.
  ENDIF.
endif.
endif.


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.

  ENDCASE.

ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  MODIFY_IT_ZEKPO  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE MODIFY_GT_ZEKPO INPUT.
  MODIFY gt_zekpo FROM gwa_zekpo
  INDEX TC_ZEKPO-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 'DEL'.
    GET CURSOR LINE sy-tabix.
    f1 = 1.


  ENDCASE.

ENDMODULE.
PROCESS BEFORE OUTPUT.
  MODULE STATUS_9002.
    MODULE fetch_data.
  LOOP AT GT_ZEKPO INTO GWA_ZEKPO WITH CONTROL TC_ZEKPO CURSOR
TC_ZEKPO-CURRENT_LINE.

  ENDLOOP.

PROCESS AFTER INPUT.
loop at gt_zekpo.
  MODULE modify_gt_zekpo.
endloop.
  MODULE USER_COMMAND_9002.

Attachments

error1.png (5.5 kB)
tbl-po-header.png (40.4 kB)
tbl-po-line.png (45.7 kB)