Enterprise Resource Planning Portal ERPGenie.COM Enterprise Resource Planning Portal

   Advertise | BLOG

Web ERPGenie.COM

Home | Vote for us |

ERPGenie.COM -> SAP Technical -> ABAP -> Example code -> Interactive ABAP Reports

Quicklinks

In the purchasing (MM module) you can process the purchase requisitions. The purchase requisitions define primarily the need for a material/service. List the first 100 purchase requisitions at the plant 'PL01' (table EBAN). Then make it possible to change the purchase requisition itself from the list by clicking twice on the row or by using a push-button.

ADDITIONAL REQUIREMENTS TO THE LIST:

1. CONTENT: PURCHASE REQUISITION NUMBER, ITEM NUMBER, DOCUMENT TYPE, MATERIAL, QUANTITY, UNIT OF MEASURE

2. LAYOUT: MAIN HEADER SHOULD INCLUDE

PROGRAM NAME, COMPANY NAME, PLANT, PURCHASE GROUP, CREATION DATE, PAGE NUMBER

3. ONE PAGE SHOULD HAVE 50 LINE ITEM


    report zmjud001 no standard page heading line-size 85 line-count 50.
    * DATA /TABLES DECLARATION*
    tables: eban.
    data: prog_nam(8).
    data: begin of pur_req occurs 100,
      ekgrp like eban-ekgrp,
      werks like eban-werks,
      banfn like eban-banfn,
      bnfpo like eban-bnfpo,
      bsart like eban-bsart,
      estkz like eban-estkz,
      matnr like eban-matnr,
      menge like eban-menge,
      meins like eban-meins,
      numb(3) type n.
    data: end of pur_req.
    * THE REPORT HEADER
    prog_nam = sy-repid.
    top-of-page.
      perform header_write.
      * SELECTION
      start-of-selection.
        pur_req-numb = 1.
        * SELECT ONLY THOSE FIELDS THAT WILL BE USED FROM THE TABLE EBAN, AND ONLY
        *THE FIRST100 RECORDS OF THE THE PLANT 'PL01'
          select banfn bnfpo bsart ekgrp matnr werks menge meins frgdt estkz
            into corresponding fields of eban from eban up to 100 rows
            where bsart = 'NB' "document type 'NB' = purchase requisition
              and werks = 'PL01'
              and statu = 'N' "processing status
              and loekz = ' '. "deletion indicator
              * THE SELECTED RECORDS SHOULD BE APPENDED TO INTERNAL TABLE 'PUR_REQ'
                pur_req-banfn = eban-banfn.
                pur_req-matnr = eban-matnr.
                pur_req-werks = eban-werks.
                pur_req-ekgrp = eban-ekgrp.
                pur_req-bnfpo = eban-bnfpo.
                pur_req-bsart = eban-bsart.
                pur_req-menge = eban-menge.
                pur_req-meins = eban-meins.
                pur_req-estkz = eban-estkz.
                append pur_req.
                pur_req-numb = pur_req-numb + 1.
                endselect.
                * CHECK WHETHER THE TABLE EBAN CONTAINS ANY PURCHASE REQUISITIONS
                  if sy-subrc ne 0.
                    write: / 'No Purchase Requisition found.'.
                    endif.
                    * PROCESS THE INTERNAL TABLE; WRITE OUT THE REQUIRED FIELDS AND HIDE THE
                    *FIELDS YOU ARE GOING TO USE LATER
                      loop at pur_req.
                        write: /1 pur_req-numb, 9 pur_req-banfn, 21 pur_req-bnfpo, 31 pur_req-bsart, 41 pur_req-matnr,
                        61 pur_req-menge unit pur_req-meins, 82 pur_req-meins.
                        hide: pur_req-matnr, pur_req-werks, pur_req-banfn.
                        endloop.
                        clear pur_req-banfn. clear pur_req-matnr. clear pur_req-werks.
                        * IN THE MENU PAINTER (SE41) CREATE A STATUS TO YOUR PROGRAM. HERE YOU CAN
                        *DEFINE THE PUSH-BUTTON
                          set pf-status 'basic'.
                          * CHOOSE A REQUISITION (WITH DOUBLE CLICKING OR PUSH-BUTTON) IN THE LIST! THE
                          *PURCHASE REQUISITION IS GOING TO COME UP
                          at line-selection.
                            if pur_req-banfn <> space.
                              set parameter id 'BAN' field pur_req-banfn. " parameter id for pruchase req. number
                              call transaction 'ME52' and skip first screen. "trans. code 'ME52': Change Purchase Requis.
                              clear pur_req-banfn. clear pur_req-matnr.
                              clear pur_req-werks.
                              endif.
                              * FORM THE HEADER
                              form header_write.
                                write: / prog_nam, 32 'FUN-FACTORY',
                                  / 'Purch.Gr.:', pur_req-ekgrp, 26 'Purchase Requisition List',
                                  61 'As Of Date:', 75 sy-datum,
                                  / 'Plant:', pur_req-werks, 61 'Page:', 75 sy-pagno.
                                  uline.
                                  write: / text-001,
                                    / text-002.
                                    uline.
                                    endform.

                                    NOTES:

                                    1. PUSH-BUTTON DEFINITION (SE11)

                                      In the Menu Painter a status must be created where you can maintain the function keys

                                    2. MAINTAIN THE TEXT ELEMENT TO THE HEADER OF THE LIST

                                      (SE38 choose the object component 'TEXT ELEMENTS' at the first screen, then the'TEXT SYMBOLS'. Here you can add a number (I.E. 001) to 'TEXT SYMBOL' and write the header title into the text field like this:

                                    001 Numb.__Requisition__Item___Document_____Material_________________Quantity_Unit_of

                                    002 _________Number_____Num______Type__________________________________Measure

                                    THE FIRST 15 LINE ITEMS OF THE RESULT AND THE HEADERS:

                                    ZMJUD001                     FUN-FACTORY                     
                                    Purch. Gr.: 001  Purchase Requisition List      As Of Date:   05/09/1997        
                                    Plant: D031                                                      Page: 1 
                                    -------------------------------------------------------------------------
                                    Numb.   Requisition  Item    Document  Material        Quantity  Unit of
                                            Number               Num       Type                      Measure
                                    -------------------------------------------------------------------------
                                    1       10049227     00010   NB        11141-030       23.000    CS
                                    2       10049223     00010   NB        11141-030       23.000    CS
                                    3       10049225     00010   NB        11141-030       13.000    CS
                                    4       10049226     00010   NB        11141-030        9.000    CS
                                    5       10049224     00010   NB        11141-030       23.000    CS
                                    6       10049222     00010   NB        11141-030       23.000    CS
                                    7       10049221     00010   NB        11141-030       38.000    CS
                                    8       10049228     00010   NB        11141-030       23.000    CS
                                    9       10049229     00010   NB        11141-030       23.000    CS
                                    10      10049230     00010   NB        11141-030       22.000    CS
                                    11      10049231     00010   NB        11141-030       24.000    CS
                                    12      10049232     00010   NB        11141-030       24.000    CS
                                    13      10049233     00010   NB        11141-030       24.000    CS
                                    14      10049234     00010   NB        11141-030       23.000    CS
                                    15      10049235     00010   NB        11141-030        5.000    CS
                                    

                                    Judit Rakovits
                                     

                                    Contact Us | Polls | Add URL | Contribute | About | Privacy | Terms | Feedback | Help!

                                    Message Board | Discussion Forum | BLOG | Consultants: Post your resume | Companies: Advertise on ERPGenie.COM | Post Job