Skip to Content
-4
Jun 17, 2020 at 06:45 AM

sub-routines

73 Views

hi all the below mentioned code derived by me for joining two internal tables and get data for the output table based on select options. can anyone please let me know hoe to code the same with USING SUB-ROUTINES.

TABLES : zekko, zekpo.



TYPES : BEGIN OF ty_outp,
ebeln TYPE zekko-ebeln,
ebelp TYPE zekpo-ebelp,
matnr TYPE zekpo-matnr,
arktx TYPE zekpo-arktx,
zqnty TYPE zekpo-zqnty,
zunit TYPE zekpo-zunit,
zamnt TYPE zekpo-zamnt,
zcurr TYPE zekko-zcurr,
erdat TYPE zekko-erdat,
ename TYPE zekko-ename,
END OF ty_outp.

TYPES : tt_outp TYPE TABLE OF ty_outp.

DATA : gt_outp TYPE tt_outp,
wt_outp TYPE ty_outp.

DATA : gt_ekko TYPE TABLE OF zekko,
gt_ekpo TYPE TABLE OF zekpo,
wt_ekko TYPE zekko,
wt_ekpo TYPE zekpo.

SELECT-OPTIONS : s_ebeln FOR zekko-ebeln,
s_erdat FOR zekko-erdat,
s_matnr FOR zekpo-matnr.

SELECTION-SCREEN SKIP 2.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-001.
PARAMETERS : r1 RADIOBUTTON GROUP grp1 DEFAULT 'X' USER-COMMAND actn,
r2 RADIOBUTTON GROUP grp1,
r3 RADIOBUTTON GROUP grp1.
SELECTION-SCREEN END OF BLOCK b2.



START-OF-SELECTION.



SELECT * FROM zekko INTO TABLE gt_ekko.


IF gt_ekko IS NOT INITIAL.

SELECT * FROM zekpo INTO TABLE gt_ekpo
FOR ALL ENTRIES IN gt_ekko WHERE ebeln = gt_ekko-ebeln.

ENDIF.

LOOP AT gt_ekko INTO wt_ekko.

READ TABLE gt_ekpo INTO wt_ekpo WITH KEY ebeln = wt_ekko-ebeln.

wt_outp-ebeln = wt_ekko-ebeln.
wt_outp-zcurr = wt_ekko-zcurr.
wt_outp-ename = wt_ekko-ename.
wt_outp-erdat = wt_ekko-erdat.
wt_outp-arktx = wt_ekpo-arktx.
wt_outp-zqnty = wt_ekpo-zqnty.
wt_outp-zamnt = wt_ekpo-zamnt.
wt_outp-zunit = wt_ekpo-zunit.
wt_outp-matnr = wt_ekpo-matnr.
wt_outp-ebelp = wt_ekpo-ebelp.


APPEND wt_outp TO gt_outp.


ENDLOOP.

CASE 'X'.

WHEN r1.

LOOP AT gt_outp INTO wt_outp
WHERE ebeln IN s_ebeln
AND matnr IN s_matnr
AND erdat IN s_erdat.

WRITE : / wt_outp-ebeln , wt_outp-ebelp , wt_outp-matnr , wt_outp-arktx , wt_outp-zqnty , wt_outp-zunit , wt_outp-zcurr , wt_outp-erdat , wt_outp-ename.

ENDLOOP.
ENDCASE.

TOP-OF-PAGE.

WRITE : / 'PO Number' , 11 'Item No' , 19 'Material no', 35 'Mat.Description', 77 'qnty' ,
84 'unit', 88 'Curncy', 95 'Crtd date' , 106 'crtd By'.

END-OF-PAGE.