37 Flares Twitter 0 Facebook 37 Google+ 0 LinkedIn 0 Email -- Pin It Share 0 37 Flares ×

Requirement: DISPLAY PURCHASE ORDER AND GOODS RECEIPT DETAILS AGAINST PURCHASE REQUISITION.

Source code:

REPORT  ZB_TEST5_REP NO STANDARD PAGE HEADING
LINE-SIZE 150.
*&———————————————————————*
*& Report  ZB_TEST5_REP
*&
*&———————————————————————*
*& Progr1am Name       : Z_B_TEST5_REP
*& Title/Description   : To display pur.req against po and goods receipt
*& Functional          : SAPSIMPLIFIED.COM
*& Technical           : SAPSIMPLIFIED.com
*& Requirement/Purpose : To display pur.req. SAP reports
*& Input               : purchase requisition number and po and gr
*& Output              : pur.req,po,gr
*&———————————————————————*
*  Transport      Date of      Developed/   Description                *
*  Request      Change/Create  Modified                                *
*&———————————————————————*
*  OUIK900040    24.08.2012    SAPUSER      Initial Development        *                                                                    *
*                                                                      *
*                                                                      *
*                                                                      *
*                                                                      *
*&———————————————————————*

*———————————————————————-*
*                           T A B L E S                                *
*———————————————————————-*
TABLES : eban.    ” purchase requisition table

*———————————————————————-*
*       I N T E R N A L   T A B L E   D E C L A R A T I O N S          *
*———————————————————————-*
*— to hold purchase requisition data
DATA: BEGIN OF gt_eban OCCURS 0,
banfn LIKE eban-banfn,         “purchase req number
bnfpo LIKE eban-bnfpo,         “Item Number of Purchase Requi
badat LIKE eban-badat,         “Requisition (Request) Date
chckbox TYPE c,               “check box
END OF gt_eban.

DATA: BEGIN OF gt_eban1 OCCURS 0,
banfn LIKE eban-banfn,         “purchase req number
bnfpo LIKE eban-bnfpo,         “Item Number of Purchase Requi
badat LIKE eban-badat,         “Requisition (Request) Date
END OF gt_eban1.

DATA: BEGIN OF gt_ekpo OCCURS 0,
ebeln LIKE ekpo-ebeln,         “purchase order header number
ebelp LIKE ekpo-ebelp,         “purchase order item number
matnr LIKE ekpo-matnr,         “material number
werks LIKE ekpo-werks,         “plant
banfn LIKE ekpo-banfn,         “purchase req number
END OF gt_ekpo.

DATA: BEGIN OF gt_ekko OCCURS 0,
ebeln LIKE ekko-ebeln,         “purchase order header number
bukrs LIKE ekko-bukrs,         “company code
bsart LIKE ekko-bsart,         “document type
aedat LIKE ekko-aedat,         “change on date
ekorg LIKE ekko-ekorg,         “purchasing organization
END OF gt_ekko.

DATA: BEGIN OF gt_mkpf OCCURS 0,
mblnr LIKE mkpf-mblnr,         “Number of Material Document
mjahr LIKE mkpf-mjahr,         “Material Document Year
aedat LIKE mkpf-aedat,         “change on
END OF gt_mkpf.
DATA: BEGIN OF gt_mseg OCCURS 0,
mblnr LIKE mseg-mblnr,         “Number of Material Document
zeile LIKE mseg-zeile,         “Item in Material Document
matnr LIKE mseg-matnr,         “material number
ebeln LIKE mseg-ebeln,         “purchase order header number
ebelp LIKE mseg-ebelp,         “purchase order item number
END OF gt_mseg.
*———————————————————————-*
*       G L O B A L   V A R I A B L E    D E C L A R A T I O N S       *
*———————————————————————-*
DATA: gv_banfn LIKE eban-banfn.        “global var for pur.req.numbr
DATA: gv_banfn1 LIKE eban-banfn,       “global var for pur.req.numb
gv_bnfpo1 LIKE  eban-bnfpo,      “global var for item
gv_badat LIKE eban-badat.        “global var for the date
DATA: gv_strtline TYPE i,              “global var for start line
gv_endline  TYPE i,              “global var for end line
gv_linno    TYPE i,              “global var fro line numb
gv_val      TYPE c.              “global var value

*———————————————————————-*
*                   S E L E C T I O N – S C R E E N                    *
*———————————————————————-*
SELECT-OPTIONS s_banfn FOR eban-banfn.      “pur.requ.number
PARAMETERS: rb_purc RADIOBUTTON GROUP grp1, “radio button for purcahse
rb_good RADIOBUTTON GROUP grp1. “radio button for gr

*———————————————————————-*
*                A T   S E L E C T I O N – S C R E E N                 *
*———————————————————————-*
AT SELECTION-SCREEN.
*—validation for the pur.req number

PERFORM val_banfn.

*———————————————————————-*
*                I N T I A L I Z A T I O N                             *
*———————————————————————-*
INITIALIZATION.
*—initialization for the purchase req number
PERFORM init_banfn.

*———————————————————————-*
*                  S T A R T – O F – S E L E C T I O N                 *
*———————————————————————-*
START-OF-SELECTION.
*— select statement for pur.req number
PERFORM start_gt_eban.

*———————————————————————-*
*                  E N D – O F – S E L E C T I O N                     *
*———————————————————————-*
END-OF-SELECTION.
*—display of eban
PERFORM end_display_eban.

*———————————————————————-*
*                     T O P – O F – P A G E                            *
*———————————————————————-*
TOP-OF-PAGE.
*—header data
PERFORM end_header.

*———————————————————————-*
*                    A T U S E R C O M M A N D                         *
*———————————————————————-*
AT USER-COMMAND.
*—seconadry list
PERFORM user_disp_po_mtnr.

*———————————————————————-*
*                      S U B R O U T I N E S                           *
*———————————————————————-*
*form xxxxxx.
*&———————————————————————*
*&      Form  VAL_BANFN
*&———————————————————————*
*       text
*———————————————————————-*
*  –>  p1        text
*  <–  p2        text
*———————————————————————-*
FORM val_banfn .
IF NOT s_banfn[] IS INITIAL.
SELECT SINGLE banfn
FROM eban
INTO gv_banfn
WHERE banfn IN s_banfn.
IF sy-subrc <> 0.
MESSAGE e000(zkrg) WITH ‘enter a valid purchase req number’.
ENDIF.

ENDIF.

ENDFORM.                    ” VAL_BANFN

*&———————————————————————*
*&      Form  END_HEADER
*&———————————————————————*
*       text
*———————————————————————-*
*  –>  p1        text
*  <–  p2        text
*———————————————————————-*
FORM end_header .

WRITE:/3(7) ‘DATE:’,
/3(11) sy-datum,
/3(8) ‘TIME:’,
/3(15) sy-uzeit,
/20(55) ‘TO DISPLAY PURCHASEV REQUISTION DETAILS’.
WRITE:/3 sy-uline(38),
/3 sy-vline(1),
4(6) ‘SELECT’,
11 sy-vline(1),
12(10) ‘BANFN’,
23 sy-vline(1),
24(5) ‘BNFPO’,
30 sy-vline(1),
31(8) ‘BADAT’,
40 sy-vline(1),
/3 sy-uline(38).
gv_strtline = sy-linno.

ENDFORM.                    ” END_HEADER

*&———————————————————————*
*&      Form  START_GT_EBAN
*&———————————————————————*
*       text
*———————————————————————-*
*  –>  p1        text
*  <–  p2        text
*———————————————————————-*
FORM start_gt_eban .
SELECT banfn           “purchase requisition number
bnfpo           “item number for pur.rq number
badat           “requisition date
FROM eban
INTO TABLE gt_eban
WHERE banfn IN s_banfn.

ENDFORM.                    ” START_GT_EBAN
*&———————————————————————*
*&      Form  END_DISPLAY_EBAN
*&———————————————————————*
*       text
*———————————————————————-*
*  –>  p1        text
*  <–  p2        text
*———————————————————————-*
FORM end_display_eban .
LOOP AT gt_eban.

WRITE: /3 sy-vline(1),
4 gt_eban-chckbox AS CHECKBOX,
11 sy-vline(1),
12(10) gt_eban-banfn,
23 sy-vline(1),
24(5) gt_eban-bnfpo,
30 sy-vline(1),
31(8) gt_eban-badat,
40 sy-vline(1).

HIDE:gt_eban-banfn,
gt_eban-bnfpo,
gt_eban-badat.

ENDLOOP.
gv_endline = sy-linno.
WRITE:/3 sy-uline(38).
SET PF-STATUS ‘DISPLAY’.

ENDFORM.                    ” END_DISPLAY_EBAN
*&———————————————————————*
*&      Form  SELECT_EKPO
*&———————————————————————*
*       text
*———————————————————————-*
*  –>  p1        text
*  <–  p2        text
*———————————————————————-*
FORM select_ekpo .
SELECT   ebeln              “purchase order header number
ebelp              “purchase order item data
matnr              “material number
werks              “plant
banfn              “purchase req number
FROM ekpo
INTO TABLE gt_ekpo
FOR ALL ENTRIES IN gt_eban1
WHERE banfn = gt_eban1-banfn.

ENDFORM.                    ” SELECT_EKPO
*&———————————————————————*
*&      Form  USER_DISP_PO_MTNR
*&———————————————————————*
*       text
*———————————————————————-*
*  –>  p1        text
*  <–  p2        text
*———————————————————————-*
FORM user_disp_po_mtnr .
IF sy-ucomm = ‘DISPLAY’.
gv_linno = gv_endline – gv_strtline.
gv_strtline = gv_strtline + 1.
DO gv_linno TIMES.
READ LINE gv_strtline FIELD VALUE gt_eban-chckbox INTO gv_val.
IF gv_val = ‘X’.
READ LINE gv_strtline FIELD VALUE gt_eban-banfn INTO gv_banfn1.
READ LINE gv_strtline FIELD VALUE gt_eban-bnfpo INTO gv_bnfpo1.
READ LINE gv_strtline FIELD VALUE gt_eban-badat INTO gv_badat.
MOVE gv_banfn1 TO gt_eban1-banfn.
MOVE gv_bnfpo1  TO gt_eban1-bnfpo.
MOVE gv_badat TO gt_eban1-badat.

APPEND gt_eban1.

ENDIF.
CLEAR gt_eban1.
gv_strtline = gv_strtline + 1.

ENDDO.

IF rb_purc = ‘X’.
*—-select statement for the purchase order
PERFORM select_ekpo.

SELECT ebeln                “purchase order header number
bukrs                “company code
bsart                “document type
aedat                “date of created pur order
ekorg                “purchase organization
FROM ekko
INTO TABLE gt_ekko
FOR ALL ENTRIES IN gt_ekpo
WHERE ebeln = gt_ekpo-ebeln.
WRITE:/3(7) ‘DATE:’,
/3(11) sy-datum,
/3(8) ‘TIME:’,
/3(15) sy-uzeit,
/20(55) ‘TO DISPLAY purchase order header and item DETAILS’.
WRITE:/3 sy-uline(83),
/3 sy-vline(1),
4(10) ‘EBELN’,
15 sy-vline(1),
16(5) ‘EBELP’,
22 sy-vline(1),
23(18) ‘MATNR’,
42 sy-vline(1),
43(5) ‘BUKRS’,
49 sy-vline(1),
50(5) ‘EKORG’,
56 sy-vline(1),
57(8) ‘AEDAT’,
66 sy-vline(1),
67(5) ‘WERKS’,
73 sy-vline(1),
74(10) ‘BANFN’,
85 sy-vline(1),
/3 sy-uline(83).

LOOP AT gt_ekpo.
LOOP AT gt_ekko.
IF gt_ekko-ebeln = gt_ekpo-ebeln.

WRITE:/3 sy-vline(1),
4(10) gt_ekpo-ebeln,
15 sy-vline(1),
16(5) gt_ekpo-ebelp,
22 sy-vline(1),
23(18) gt_ekpo-matnr,
42 sy-vline(1),
43(5) gt_ekko-bukrs,
49 sy-vline(1),
50(5) gt_ekko-ekorg,
56 sy-vline(1),
57(8) gt_ekko-aedat,
66 sy-vline(1),
67(5) gt_ekpo-werks,
73 sy-vline(1),
74(10) gt_ekpo-banfn,
85 sy-vline(1).

HIDE:gt_ekpo-ebeln,
gt_ekpo-ebelp.
ENDIF.
ENDLOOP.

ENDLOOP.
WRITE:/3 sy-uline(83).
ELSE.
*—-select statement for the purchase order
PERFORM select_ekpo.
SELECT mblnr             “Number of Material Document
zeile             “Item in Material Document
matnr             “material number
ebeln             “purchase order header number
ebelp             “purchase ordeer item data
FROM mseg
INTO TABLE gt_mseg
FOR ALL ENTRIES IN gt_ekpo
WHERE ebeln = gt_ekpo-ebeln AND ebelp = gt_ekpo-ebelp.

SELECT mblnr             “Number of Material Document
mjahr             “Material Document Year
aedat             “Changed On
FROM mkpf
INTO TABLE gt_mkpf
FOR ALL ENTRIES IN gt_mseg
WHERE mblnr = gt_mseg-mblnr.
WRITE:/3(7) ‘DATE:’,
/3(11) sy-datum,
/3(8) ‘TIME:’,
/3(15) sy-uzeit,
/20(55) ‘TO DISPLAY goods receipt DETAILS’.
WRITE:/3 sy-uline(76),
/3 sy-vline(1),
4(10) ‘MBLNR’,
15 sy-vline(1),
16(5) ‘ZEILE’,
22 sy-vline(1),
23(18) ‘MATNR’,
42 sy-vline(1),
43(10) ‘EBELN’,
54 sy-vline(1),
55(5) ‘EBELP’,
61 sy-vline(1),
62(5) ‘MJAHR’,
68 sy-vline(1),
69(8) ‘AEDAT’,
78 sy-vline(1),
/3 sy-uline(76).

LOOP AT gt_mseg.
LOOP AT gt_mkpf.
IF gt_mseg-mblnr = gt_mkpf-mblnr.

WRITE:/3 sy-vline(1),
4(10) gt_mseg-mblnr,
15 sy-vline(1),
16(5) gt_mseg-zeile,
22 sy-vline(1),
23(18) gt_mseg-matnr,
42 sy-vline(1),
43(10) gt_mseg-ebeln,
54 sy-vline(1),
55(5) gt_mseg-ebelp,
61 sy-vline(1),
62(5) gt_mkpf-mjahr,
68 sy-vline(1),
69(8) gt_mkpf-aedat,
78 sy-vline(1).
ENDIF.

ENDLOOP.
ENDLOOP.
WRITE:/3 sy-uline(76).

ENDIF.

ENDIF.

ENDFORM.                    ” USER_DISP_PO_MTNR
*&———————————————————————*
*&      Form  INIT_BANFN
*&———————————————————————*
*       text
*———————————————————————-*
*  –>  p1        text
*  <–  p2        text
*———————————————————————-*
FORM init_banfn .
s_banfn-sign   = ‘I’.
s_banfn-option = ‘BT’.
s_banfn-low    = ‘4000000000’.
s_banfn-high   = ‘4000000030’.
APPEND s_banfn.
CLEAR s_banfn.
ENDFORM.                    ” INIT_BANFN

Report Output:

Display PO And Goods Reciept Details Against Purchase Requisition - SAP ABAP ReportsTO DISPLAY PURCHASE ORDER DETAILS AGAINST PURCHASE REQUISITION.

Display PO And Goods Reciept Details Against Purchase Requisition - SAP ABAP ReportsTO DISPLAY THE PURCHASE ORDER DETAILS FOR THE SELECTED PURCHASE REQUISITIONS.

Display PO And Goods Reciept Details Against Purchase Requisition - SAP ABAP Reports

Display PO And Goods Reciept Details Against Purchase Requisition - SAP ABAP ReportsTO DISPLAY GOODS ORDER DETAILS AGAINST PURCHASE REQUISITION.

Display PO And Goods Reciept Details Against Purchase Requisition - SAP ABAP Reports

TO DISPLAY THE GOODS RECIEPT DETAILS FOR THE SELECTED PURCHASE REQUISITIONS.

Display PO And Goods Reciept Details Against Purchase Requisition - SAP ABAP Reports

 

That’s it.

Enjoy 🙂

Also Read:

Business Application Programming Interface Introduction – BAPI

BADI Real Time Scenarios.

What is BADI? How to Find BADI in SAP ABAP.

Interactive reports in SAP ABAP.

37 Flares Twitter 0 Facebook 37 Google+ 0 LinkedIn 0 Email -- Pin It Share 0 37 Flares ×