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
*&---------------------------------------------------------------------*
*& 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.