Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

basic and detailed list

Former Member
0 Likes
759

want some example of code for basic list and detail list and also ril down list

want some example of code for basic list and detail list and also ril down list

4 REPLIES 4
Read only

Former Member
0 Likes
707

<b>Example Code For Drill Down Report</b>

REPORT  zmm_rept_purchorderkkb01 LINE-SIZE 80
                                 LINE-COUNT 65(3)
                                 MESSAGE-ID z_msg_class
                                 NO STANDARD PAGE HEADING.

*------------------DECLARING THE STANDARD TABLES---------------------*
TABLES : ekko, "PURCHASE ORDER : HEADER
         ekpo. "PURCHASE ORDER : ITEM

*------------------DECLARING THE INTERNAL TABLE----------------------*
DATA  : BEGIN OF it_ekko OCCURS 2,
          ebeln LIKE ekko-ebeln, "PURCHASE ORDER NUMBER
          bukrs LIKE ekko-bukrs, "COMPANY CODE
          bsart LIKE ekko-bsart, "PURCHASING DOCUMENT TYPE
          lifnr LIKE ekko-lifnr, "VENDOR
          spras LIKE ekko-spras, "LANGUAGE KEY
          zterm LIKE ekko-zterm, "PAYMENT TERMS KEY
        end of it_ekko.

DATA  : BEGIN OF it_ekpo OCCURS 2,
          ebeln LIKE ekpo-ebeln, "PURCHASE ORDER NUMBER
          ebelp LIKE ekpo-ebelp, "PURCHASE ORDER NUMBER
          werks LIKE ekpo-werks, "PLANT
          matnr LIKE ekpo-matnr, "MATERIAL NUMBER
          matkl LIKE ekpo-matkl, "MATERIAL GROUP
        END OF it_ekpo.

DATA: it_ebeln LIKE ekko-ebeln OCCURS 0 WITH HEADER LINE.

*DATA: it_ebeln_high LIKE ekko-ebeln OCCURS 0 WITH HEADER LINE.

DATA: p_ebeln       TYPE i.

*------------------Declaring the selection screen--------------------*

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.

SELECT-OPTIONS : s_ebeln FOR ekko-ebeln.

PARAMETER      : p_limit TYPE i.

SELECTION-SCREEN END OF BLOCK blk1.


*INCLUDE z_incl_purorderkkb01_sub_f01.


*--------------------------------------------------------------------*
*  Validation for  number of records to be printed                   *
*--------------------------------------------------------------------*

*AT SELECTION-SCREEN ON p_limit.
*  IF p_limit IS INITIAL.
*    MESSAGE e011.
*  ENDIF.


*  IF p_limit GT sy-linct.
*    MESSAGE e010.
*  ENDIF.


*----------------------------------------------------------------------*
*        Search help for purchase document number (s_ebeln-low)        *
*----------------------------------------------------------------------*

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-low.
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = s_ebeln-low
    IMPORTING
      output = s_ebeln-low.

  perform form_search_help.

  IF sy-subrc <> 0.
    CASE sy-subrc.
      WHEN 2.
        LEAVE TO SCREEN 1000.
    ENDCASE.
  ELSE.
    LOOP AT it_ebeln.
      IF sy-tabix = p_ebeln.
        s_ebeln-low = it_ebeln.
        EXIT.
      ENDIF.
    ENDLOOP.
  ENDIF.

*----------------------------------------------------------------------*
*        Search help for purchase document number (s_ebeln-high)       *
*----------------------------------------------------------------------*

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-high.
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = s_ebeln-high
    IMPORTING
      output = s_ebeln-high.

  perform form_search_help.

  IF sy-subrc <> 0.
    CASE sy-subrc.
      WHEN 2.
        LEAVE TO SCREEN 1000.
    ENDCASE.
  ELSE.
    LOOP AT it_ebeln.
      IF sy-tabix = p_ebeln.
        s_ebeln-high = it_ebeln.
        EXIT.
      ENDIF.
    ENDLOOP.
  ENDIF.

*----------------------------------------------------------------------*
*                   Start-of-selection event                           *
*----------------------------------------------------------------------*

START-OF-SELECTION.

*----------------------To attach a user interface----------------------*
SET PF-STATUS '0010'.

*---------To fetch the data for the basic list-------------------------*
    SELECT ebeln                   "PURCHASE ORDER NUMBER
           bukrs                   "COMPANY CODE
           bsart                   "PURCHASING DOCUMENT TYPE
           lifnr                   "VENDOR
           spras                   "LANGUAGE KEY
           zterm                   "PAYMENT TERMS KEY
     up to p_limit rows
     into table it_ekko from ekko
     where ebeln in s_ebeln.

     REFRESH it_ekpo.

*---------To fetch the data for the secondary list-----------------------*

if it_ekpo is initial.

    SELECT ebeln "PURCHASE ORDER NUMBER
           ebelp "PURCHASING DOCUMENT TYPE
           werks "PLANT
           matnr "MATERIAL NUMBER
           matkl "MATERIAL GROUP
    FROM ekpo  INTO TABLE it_ekpo for all entries in it_ekko
    WHERE ebeln EQ it_ekko-ebeln.

endif.

*----------------------------------------------------------------------*
*                   End-of-selection event                             *
*----------------------------------------------------------------------*

END-OF-SELECTION.


*---------To display the data for the basic list-----------------------*
   format color 4 intensified off.
  LOOP AT it_ekko.
    WRITE :/ sy-vline, it_ekko-ebeln UNDER text-002, 18 sy-vline,
                                                    "PURCHASE ORDER NUMBER
                       it_ekko-bukrs UNDER text-003, 27 sy-vline,
                                                    "COMPANY CODE
                       it_ekko-bsart UNDER text-004, 38 sy-vline,
                                                    "PURCHASING DOCUMENT TYPE
                       it_ekko-lifnr UNDER text-005, 50 sy-vline,
                                                    "VENDOR
                       it_ekko-spras UNDER text-006, 62 sy-vline,
                                                    "LANGUAGE KEY
                       it_ekko-zterm UNDER text-007, 80 sy-vline.
                                                    "PAYMENT TERMS KEY

  hide : it_ekko-ebeln.
  ENDLOOP.
  WRITE :/ sy-uline(80).

*----------------------------------------------------------------------*
*                To generate the detailed lists                        *
*----------------------------------------------------------------------*

AT LINE-SELECTION.
  CASE sy-lsind.
    WHEN 1.
      SET PF-STATUS '0011'.

*---------To display the data for the secondary list-----------------------*
WINDOW STARTING AT 10 10
       ENDING   AT 90 30.
    format color 5 intensified off.
  LOOP AT it_ekpo where ebeln = it_ekko-ebeln .
    WRITE :/ sy-vline, it_ekpo-ebeln UNDER text-002, 15 sy-vline,
                                                     "PURCHASE ORDER NUMBER
                       it_ekpo-ebelp UNDER text-008, 30 sy-vline,
                                                     "PO ITEM NUMBER
                       it_ekpo-werks UNDER text-009, 45 sy-vline,
                                                     "PLANT
                       it_ekpo-matnr UNDER text-010, 60 sy-vline,
                                                     "MATERIAL NUMBER
                       it_ekpo-matkl UNDER text-011, 80 sy-vline.
                                                     "MATERIAL GROUP
  ENDLOOP.

  WRITE :/ sy-uline(80).

  ENDCASE.

  CASE sy-ucomm.
    WHEN 'EXIT' OR 'CANC' OR 'BACK'.
       LEAVE TO SCREEN 0.
  ENDCASE.

*----------------------------------------------------------------------*
*                    At user-command event                             *
*----------------------------------------------------------------------*

AT USER-COMMAND.
  CASE sy-ucomm.
    WHEN 'SELE' OR 'LIST1'.
      IF sy-lsind = 1.
      SET PF-STATUS '0011'.

*---------To display the data for the secondary list-----------------------*

WINDOW STARTING AT 10 10
       ENDING   AT 90 30.
       format color 5 intensified off.

  LOOP AT it_ekpo where ebeln = it_ekko-ebeln .
    WRITE :/ sy-vline, it_ekpo-ebeln UNDER text-002, 15 sy-vline, "PURCHASE ORDER NUMBER
                       it_ekpo-ebelp UNDER text-008, 30 sy-vline, "PO ITEM NUMBER
                       it_ekpo-werks UNDER text-009, 45 sy-vline, "PLANT
                       it_ekpo-matnr UNDER text-010, 60 sy-vline, "MATERIAL NUMBER
                       it_ekpo-matkl UNDER text-011, 80 sy-vline. "MATERIAL GROUP

  ENDLOOP.

  WRITE :/ sy-uline(80).
  endif.

  ENDCASE.

  CASE sy-ucomm.
    WHEN 'EXIT' OR 'CANC' OR 'BACK'.
       LEAVE TO SCREEN 0.

  ENDCASE.

*----------------------------------------------------------------------*
*                    Top-of-page for basic list                        *
*----------------------------------------------------------------------*

TOP-OF-PAGE.

 format color 3 intensified off.

  WRITE :/ sy-uline(80).
  WRITE :/    sy-vline,
           03 sy-repid,
           60 text-015,
              sy-uname,
           80 sy-vline.
  WRITE :/ sy-vline, 03 sy-datum,
           35 text-012,
           60 text-014,
              sy-pagno,
           80 sy-vline.
  WRITE :/ sy-uline(80).
  WRITE :/ sy-vline, text-002, 18 sy-vline, "PURCHASE ORDER NUMBER
                     text-003, 27 sy-vline, "COMPANY CODE
                     text-004, 38 sy-vline, "PURCHASING DOCUMENT TYPE
                     text-005, 50 sy-vline, "VENDOR
                     text-006, 62 sy-vline, "LANGUAGE KEY
                     text-007, 80 sy-vline. "PAYMENT TERMS KEY
  WRITE :/ sy-uline(80).

*----------------------------------------------------------------------*
*              Top-of-page for secondary list                          *
*----------------------------------------------------------------------*

TOP-OF-PAGE DURING LINE-SELECTION.
format color 2 intensified off.
WINDOW STARTING AT 10 10
       ENDING   AT 90 30.
  WRITE :/ sy-uline(80).
  WRITE :/   sy-vline,
          03 sy-repid,
          60 text-015,
             sy-uname,
          80 sy-vline.

  WRITE :/   sy-vline,
          03 sy-datum,
          35 text-013,
          60 text-014,
             sy-pagno,
          80 sy-vline.

  WRITE :/ sy-uline(80).

  WRITE :/ sy-vline, text-014, 15 sy-vline, "PURCHASE ORDER NUMBER
                     text-008, 30 sy-vline, "PO ITEM NUMBER
                     text-009, 45 sy-vline, "PLANT
                     text-010, 60 sy-vline, "MATERIAL NUMBER
                     text-011, 80 sy-vline. "MATERIAL GROUP

  WRITE :/ sy-uline(80).

*----------------------------------------------------------------------*
*                    End-of-page event                                 *
*----------------------------------------------------------------------*

END-OF-PAGE.
  WRITE :/    sy-vline,
           03 text-016,
              p_limit,
           60 text-014,
              sy-pagno,
           80 sy-vline.
  write:/ sy-uline(80).

INCLUDE Z_INCLUDE_PURCHORDERKKB01.
form form_search_help .

REFRESH it_ebeln.
  CLEAR it_ebeln.
  CLEAR P_ebeln.

  SELECT ebeln FROM ekko INTO TABLE it_ebeln.

  CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
    EXPORTING
      endpos_col   = 21
      endpos_row   = 35
      startpos_col = 12
      startpos_row = 1
      titletext    = text-012

    IMPORTING
      choise       = P_ebeln

    TABLES
      valuetab     = it_ebeln

    EXCEPTIONS
      break_off    = 1
      OTHERS       = 2.

reward points if it is usefull ...

Girish

Read only

Former Member
0 Likes
707

Hi,

Here is a sample code for basic list output report.


*---------------------------------------------------------------------*
*       MODULE PAYROLL                                                *
*---------------------------------------------------------------------*
*       Objective :To generate SOP Interims paid report.              *
*                                                                     *
*                                                                     *
*       Program   : Updates Tables (   )    Downloads data (  )       *
*                   Outputs List   ( X )                              *
*                                                                     *
*       Technical Spec No:Ethos_JKH_PY172_TS_SOP Interim Paid         *
*                                                                     *
*       Transaction Code    ZPY172_SOP                                *
*       Date Created        13-March-2007                             *
*       Author                                            *
*       LDB                 PNPCE                                     *
*---------------------------------------------------------------------*
*       External Dependencies                                         *
*---------------------------------------------------------------------*
*                                                                     *
*---------------------------------------------------------------------*
*  Amendment History                                                  *
*---------------------------------------------------------------------*
* Who                 Change ID    Reason                             *
* ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯              *
*            .......................................................  *
*            ......................................................   *
*             ......................................................  *

*&--------------------------------------------------------------------*
*& Report  ZPYR_172_SOP_INTERIM                                       *
*&                                                                    *
*&--------------------------------------------------------------------*
*&                                                                    *
*&                                                                    *
*&--------------------------------------------------------------------*

REPORT  zpyr_172_sop_interim NO STANDARD PAGE HEADING LINE-SIZE 255 LINE-COUNT 50 .

*&---------------------------------------------------------------------*
*&                                                                     *
*&       TABLES                                                        *
*&                                                                     *
*&---------------------------------------------------------------------*
TABLES : pernr,
         t001.


*&---------------------------------------------------------------------*
*&                                                                     *
*&              NODES                                                  *
*&                                                                     *
*&---------------------------------------------------------------------*

NODES:peras.
*&---------------------------------------------------------------------*
*&                                                                     *
*&      INFOTYPES                                                      *
*&                                                                     *
*&---------------------------------------------------------------------*
INFOTYPES:0000,0001,0002,0027,9071.

*&---------------------------------------------------------------------*
*&                                                                     *
*&              TYPES : TY_                                            *
*&                                                                     *
*&---------------------------------------------------------------------*

TYPES : BEGIN OF ty_t500p,
        persa       TYPE persa,                              "Personal area
        adrnr       TYPE adrnr,                              "Address Number
        END OF ty_t500p.

TYPES: BEGIN OF ty_adrc,
       addrnumber   TYPE ad_addrnum,                         "Address Number
       name1        TYPE ad_name1,                           "Name1
       name2        TYPE ad_name2,                           "Name2
       END OF ty_adrc.

TYPES:BEGIN OF ty_p0027,
      pernr         TYPE p0027-pernr,                        "Personnel Number
      kostl         TYPE kostl,                              "Cost center
      pkprz         TYPE pkprz,                              "Cost center Percentage
      END OF ty_p0027.

TYPES:BEGIN OF ty_cskt,
      kostl         TYPE kostl,                              "Cost center
      ktext         TYPE ktext,                              "Cost center text
      END OF ty_cskt.

TYPES:BEGIN OF ty_zsoplog,
       pernr       TYPE persno,                              "Personnel Number
       sopdt       TYPE zsopdt,                              "SOP Date
       sopgr       TYPE zsopgr,                              "SOP Gross
       payet       TYPE zpayet,                              "SOP Payee Tax
      END OF ty_zsoplog.


TYPES:BEGIN OF ty_final,
      co_name(80)  TYPE c,                                  "Company Name
      emp_name(80) TYPE c,                                  "Employee Name
      epfno(15)    TYPE c,                                  "EPF No
      ktext        TYPE ktext,                              "Cost center text
      apsopgr      TYPE zsopgr,                             "SOP Gross for April to July
      appayet      TYPE zpayet,                             "SOP Payee Tax April to July
      ausopgr      TYPE zsopgr,                             "SOP Gross for August to November
      aupayet      TYPE zpayet,                             "SOP Payee Tax August to November
      desopgr      TYPE zsopgr,                             "SOP Gross for December to March
      depayet      TYPE zpayet,                             "SOP Payee Tax December to March
      soptot       TYPE zsopgr,                             "Total SOP Gross
      taxtot       TYPE zpayet,                             "Total Tax
      kostl        TYPE kostl,                              "Cost center
      persa        TYPE persa,                              "Personal area
      pernr        TYPE p0027-pernr,                        "Personnel number
      kokrs        TYPE kokrs,                              " Controlling Area
      END OF ty_final.





*&---------------------------------------------------------------------*
*&                                                                     *
*&                 Constants                Begin with C_              *
*&                                                                     *
**---------------------------------------------------------------------*

CONSTANTS :c_i            TYPE c VALUE 'I',               "Used for message
           c_e            TYPE c VALUE 'E',               "Used for message
           c_j9(2)        TYPE c VALUE 'J9',              "Used for Action type
           c_sym(2)       TYPE c VALUE '-',               "Used for Action type
           c_1            TYPE i VALUE '1',               "Used for date
           c_3            TYPE i VALUE '3',               "Used for date
           c_4            TYPE i VALUE '4',               "Used for date
           c_31           TYPE i VALUE '31',              "Used for date
           c_99991231(10) TYPE c VALUE '99991231'.        "Used for date

*&---------------------------------------------------------------------*
*&                                                                     *
*&              INTERNAL TABLES : IT_                                  *
*&                                                                     *
*&---------------------------------------------------------------------*

DATA:it_final   TYPE TABLE OF ty_final,
     it_t500p   TYPE TABLE OF ty_t500p,
     it_cskt    TYPE TABLE OF ty_cskt,
     it_zsoplog TYPE TABLE OF ty_zsoplog,
     it_adrc    TYPE TABLE OF ty_adrc.

*&---------------------------------------------------------------------*
*&                                                                     *
*&    Workareas :wa_                                                   *
*&                                                                     *
*&---------------------------------------------------------------------*


DATA: wa_t500p    TYPE ty_t500p,
      wa_adrc     TYPE ty_adrc,
      wa_p0027    TYPE ty_p0027,
      wa_cskt     TYPE ty_cskt,
      wa_zsoplog  TYPE ty_zsoplog,
      wa_final    TYPE ty_final.

*&---------------------------------------------------------------------*
*&                                                                     *
*&     WORK FIELDS : W_                                                *
*&                                                                     *
*&---------------------------------------------------------------------*


DATA:w_temp             TYPE i,
     w_a                TYPE p0027-kpr01.
*&---------------------------------------------------------------------*
*&                                                                     *
*&    SELECT-OPTION                Begin with So_                      *
*&                                                                     *
**---------------------------------------------------------------------*

SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS :  so_peri FOR pnpbegda obligatory.
SELECTION-SCREEN :END OF BLOCK b1.

*&---------------------------------------------------------------------*
*&                                                                     *
*&   Date Validation                                                   *
*&                                                                     *
**---------------------------------------------------------------------*

AT SELECTION-SCREEN.
  w_temp = so_peri-low+0(4) + 1.
  IF NOT ( so_peri-low+4(2)  = c_4  AND
           so_peri-low+6(2)  = c_1 AND
           so_peri-high+4(2) = c_3  AND
           so_peri-high+6(2) = c_31 AND
           so_peri-high+0(4) = w_temp ).

    MESSAGE Text-m01 TYPE c_e.
  ENDIF.

START-OF-SELECTION.

  REFRESH: it_final,it_t500p,it_zsoplog,it_adrc .
  CLEAR: wa_t500p,wa_adrc,wa_p0027,wa_cskt,wa_zsoplog,wa_final.

GET peras.

*---------> Selecting last record from Infotype (Actions)
  rp_provide_from_last p0000 space so_peri-low so_peri-high.
  IF pnp-sw-found = 1.
    IF p0000-massn EQ c_j9 AND  p0000-begda LT so_peri-low.
      REJECT.
    ELSE.
      rp_provide_from_last p0001 space so_peri-low so_peri-high.
*      if p0001-begda gt so_peri-low .
      IF pnp-sw-found = 1.
        wa_final-kokrs = p0001-kokrs.
*---------> Selecting last record from form Infotype 0002 (Org. Assignment)
        rp_provide_from_last p0002 space so_peri-low so_peri-high.
        IF pnp-sw-found = 1.
          IF p0002-endda EQ c_99991231.
            CONCATENATE p0002-vorna p0002-nachn INTO wa_final-emp_name.
          ENDIF.


*----------->Selecting last record from form Infotype 9071

          rp_provide_from_last p9071 space so_peri-low so_peri-high.
          IF pnp-sw-found = 1.
            IF p9071-endda EQ c_99991231.
              wa_final-epfno = p9071-epfno.
            ENDIF.

            rp_provide_from_last p0027 space so_peri-low so_peri-high.
            IF pnp-sw-found = 1.
              IF p0027-endda EQ c_99991231.

                wa_p0027-pernr = p0027-pernr.
                wa_p0027-kostl = p0027-kst01.
                wa_p0027-pkprz = p0027-kpr01.

                w_a =  p0027-kpr01.


                PERFORM f001_cost_center USING p0027-pernr p0027-kst02 p0027-kpr02.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst03 p0027-kpr03.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst04 p0027-kpr04.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst05 p0027-kpr05.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst06 p0027-kpr06.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst07 p0027-kpr07.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst08 p0027-kpr08.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst09 p0027-kpr09.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst10 p0027-kpr10.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst11 p0027-kpr11.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst12 p0027-kpr12.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst13 p0027-kpr13.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst14 p0027-kpr14.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst15 p0027-kpr15.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst16 p0027-kpr16.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst17 p0027-kpr17.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst18 p0027-kpr18.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst19 p0027-kpr19.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst20 p0027-kpr20.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst21 p0027-kpr21.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst22 p0027-kpr22.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst23 p0027-kpr23.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst24 p0027-kpr24.
                PERFORM f001_cost_center USING p0027-pernr p0027-kst25 p0027-kpr25.

              ENDIF.

              wa_final-kostl = wa_p0027-kostl.

              wa_final-persa = p0001-werks.

              wa_final-pernr = p0027-pernr.

               APPEND wa_final TO it_final.
              CLEAR wa_final.
*              endif.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDIF.
  ENDIF.

END-OF-SELECTION.

  IF it_final IS NOT INITIAL.
    SELECT kostl ktext
           FROM cskt
           INTO TABLE it_cskt
           FOR ALL ENTRIES IN it_final
           WHERE kostl = it_final-kostl and
                 kokrs = it_final-kokrs and
                 spras = sy-langu       and
            cskt~datbi = c_99991231.
    IF sy-subrc EQ 0.
      SORT it_cskt BY kostl.
    ENDIF.


  ENDIF.

  IF it_final IS NOT INITIAL.
    SELECT pernr sopdt sopgr payet
              FROM zsoplog
              INTO  TABLE it_zsoplog
              FOR ALL ENTRIES IN it_final
              WHERE pernr = it_final-pernr AND
                    sopdt IN so_peri.
    IF sy-subrc EQ 0.
      SORT it_zsoplog BY pernr.
    ENDIF.

  ENDIF.

  IF  it_final IS NOT INITIAL.
    SELECT persa adrnr
      FROM t500p
      INTO TABLE it_t500p
      FOR ALL ENTRIES IN it_final
      WHERE persa EQ it_final-persa.

    IF sy-subrc EQ 0.
      SORT it_t500p BY persa.
    ENDIF.


  ENDIF.


  IF  it_t500p IS NOT INITIAL.

*---------->Fetching Address number Company Name from ADRC
    SELECT addrnumber name1 name2
        FROM adrc
      INTO TABLE it_adrc
       FOR ALL ENTRIES IN it_t500p
      WHERE addrnumber = it_t500p-adrnr.

  ENDIF.


  SORT it_final BY pernr persa kostl.

  LOOP AT it_final INTO wa_final.
    READ TABLE it_cskt INTO wa_cskt WITH KEY kostl = wa_final-kostl.
    IF sy-subrc EQ 0.
      wa_final-ktext = wa_cskt-ktext.
    ENDIF.

    READ TABLE it_t500p INTO wa_t500p WITH KEY persa = wa_final-persa.
    IF sy-subrc EQ 0.
      READ TABLE it_adrc  INTO wa_adrc  WITH KEY addrnumber = wa_t500p-adrnr.
      CONCATENATE wa_adrc-name1 wa_adrc-name2 INTO wa_final-co_name.
    ENDIF.
    READ TABLE it_zsoplog INTO wa_zsoplog WITH KEY pernr = wa_final-pernr BINARY SEARCH.
    IF sy-subrc EQ 0.

      IF wa_zsoplog-sopdt+4(2) GE 4  AND wa_zsoplog-sopdt+4(2) LE 7.

        wa_final-apsopgr = wa_zsoplog-sopgr.
        wa_final-appayet = wa_zsoplog-payet.

      ELSEIF wa_zsoplog-sopdt+4(2) GE 8  AND wa_zsoplog-sopdt+4(2) LE 11.

        wa_final-ausopgr = wa_zsoplog-sopgr.
        wa_final-aupayet = wa_zsoplog-payet.

      ELSE.

        wa_final-desopgr = wa_zsoplog-sopgr.
        wa_final-depayet = wa_zsoplog-payet.

      ENDIF .

      wa_final-soptot = wa_final-apsopgr + wa_final-ausopgr + wa_final-desopgr.

      wa_final-taxtot = wa_final-appayet + wa_final-aupayet + wa_final-depayet.

    ENDIF.

    MODIFY it_final FROM wa_final TRANSPORTING
           ktext co_name apsopgr appayet ausopgr aupayet desopgr depayet soptot taxtot.

  ENDLOOP.



*---------->If there is no data for the given input message is displayed
  IF it_final IS INITIAL.
    MESSAGE text-i01 TYPE c_i.
    EXIT.
  ENDIF.


  SORT it_final BY co_name ktext.

  LOOP AT it_final INTO wa_final.


    AT NEW co_name.

      NEW-PAGE.
      WRITE AT /1(255) sy-uline.
      WRITE:/1   sy-vline ,100  wa_final-co_name,255 sy-vline.
      WRITE:/1   sy-vline ,100  text-h01,126 so_peri-low+0(4),c_sym,so_peri-high+0(4),255 sy-vline.

      WRITE AT /1(255) sy-uline.

      WRITE :/1 sy-vline , 2 text-t02,
              22 sy-vline ,23 text-t04,
              38 sy-vline ,39 text-t06,
              80 sy-vline,85 text-t08,
             102 sy-vline,105 text-t10,
             122 sy-vline,125 text-t12,
             142 sy-vline,145 text-t14,
             162 sy-vline,164 text-t16,
             181 sy-vline,184 text-t18,
             201 sy-vline,205 text-t20,
             221 sy-vline,225 text-t22,
             255 sy-vline.

      WRITE AT /1(255) sy-uline.


    ENDAT.


    AT NEW ktext.


      WRITE:/1 sy-vline , 2 wa_final-ktext.

    ENDAT.
        WRITE :22 sy-vline ,23  wa_final-epfno,
           38 sy-vline ,39 wa_final-emp_name,
           80 sy-vline,85 wa_final-apsopgr    CURRENCY t001-waers,
           102 sy-vline,105 wa_final-appayet  CURRENCY t001-waers,
           122 sy-vline,125 wa_final-ausopgr  CURRENCY t001-waers,
           142 sy-vline,145 wa_final-aupayet  CURRENCY t001-waers,
           162 sy-vline,164 wa_final-desopgr  CURRENCY t001-waers,
           181 sy-vline,184 wa_final-depayet  CURRENCY t001-waers,
           201 sy-vline,205 wa_final-soptot   CURRENCY t001-waers,
           221 sy-vline,225 wa_final-taxtot   CURRENCY t001-waers,
           255 sy-vline.
    WRITE AT /1(255) sy-uline.

  ENDLOOP.



*&---------------------------------------------------------------------*
*&      Form  f001_cost_center
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->A          text
*      -->B          text
*      -->C          text
*----------------------------------------------------------------------*
FORM f001_cost_center USING a TYPE any b TYPE any c TYPE any.

  IF w_a < c.

    wa_p0027-pernr = a.
    wa_p0027-kostl = b.
    wa_p0027-pkprz = c.
  ENDIF.
  w_a = c.

ENDFORM.                                                    "f001_cost_center

Detailed list and drill down report are same. its not two diff types of report. its nothing but a interactive list/report.

hope this helps.

*****Reward points if helpful.

all the best

Read only

Former Member
0 Likes
707

hi,

<b>follow this link for knowing the difference between drill down and interactive reports.</b>

http://www.sap-img.com/abap/difference-between-drilldown-report-and-interactive-report.htm

<b>follow this link for sample program for drill down list.</b>

http://sap-img.com/abap/example-code-for-drill-down-report.htm

<b>follow this link for interactive report</b>

https://www.sdn.sap.com/irj/sdn/wiki?path=/display/snippets/abap-3LevelsInteractive+Report&

regards,

Ashokreddy

regards,

Ashokreddy

Read only

Former Member
0 Likes
707

Hi Sandipan.

Just copy paste this code and u will understand.

&----


*& Report ZAg_INTERACTIVE_CHECKBOX *

*& *

&----


*& NAME Sapna Agarwal *

*& DATE 2-12-05 *

*& DOM 5-12-05 *

&----


REPORT Z6_AK_INTERACTIVE_CHECKBOX NO STANDARD PAGE HEADING LINE-SIZE

150 LINE-COUNT 37.

************************************************************************

***********************************************************************

*TABLES

**

************************************************************************

***********************************************************************

TABLES: MARA , MARC , MARD , MAKT , T001L.

************************************************************************

***********************************************************************

DATA: BOX(1) TYPE C, LINES TYPE I.

DATA: BEGIN OF IT_MATERIAL_REC OCCURS 0,

MATNR LIKE MARA-MATNR, " MAT NO

MTART LIKE MARA-MTART, " TYPE

MAKTX LIKE MAKT-MAKTX, " MATERIAL DESCRIPTION

END OF IT_MATERIAL_REC,

BEGIN OF IT_PLANT_REC OCCURS 0,

MATNR LIKE MARC-MATNR, " MAT NO

WERKS LIKE MARC-WERKS, " PLANT

NAME1 LIKE T001W-NAME1, " PLANT NAME

LABST LIKE MARD-LABST, " QTY

END OF IT_PLANT_REC,

BEGIN OF IT_STORAGE_REC OCCURS 0,

MATNR LIKE MARD-MATNR, " MAT NO

LGORT LIKE MARD-LGORT, " WT TYPE

LGOBE LIKE T001L-LGOBE, " TYPE

LABST LIKE MARD-LABST, " QTY

END OF IT_STORAGE_REC,

TOTAL LIKE MARD-LABST. " FOR TOTAL QTY

CLEAR: IT_MATERIAL_REC,

IT_PLANT_REC,

IT_STORAGE_REC.

REFRESH: IT_MATERIAL_REC,

IT_PLANT_REC,

IT_STORAGE_REC.

************************************************************************

***********************************************************************

SELECTION-SCREEN

BEGIN OF BLOCK MAT WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS : V_MATNR FOR MARA-MATNR.

SELECTION-SCREEN END OF BLOCK MAT.

************************************************************************

***********************************************************************

START-OF-SELECTION.

SET PF-STATUS 'AK01' EXCLUDING 'PICK'.

REFRESH IT_MATERIAL_REC.

CLEAR IT_MATERIAL_REC.

SELECT DISTINCT MARAMATNR MAKTMAKTX INTO CORRESPONDING FIELDS OF

TABLE IT_MATERIAL_REC

FROM ( MARA INNER JOIN MAKT ON MARAMATNR = MAKTMATNR )

WHERE MARAMATNR IN V_MATNR AND MAKTSPRAS = SY-LANGU.

LOOP AT IT_MATERIAL_REC.

SELECT SUM( LABST ) INTO TOTAL

FROM MARD

WHERE MARD~MATNR = IT_MATERIAL_REC-MATNR.

WRITE:/ BOX AS CHECKBOX, 2 IT_MATERIAL_REC-MATNR , 22

IT_MATERIAL_REC-MAKTX , 115 TOTAL.

HIDE IT_MATERIAL_REC-MATNR.

HIDE IT_MATERIAL_REC-MAKTX.

HIDE TOTAL.

CLEAR IT_MATERIAL_REC.

ENDLOOP.

END-OF-SELECTION.

LINES = SY-LINNO - 1.

************************************************************************

*********************************************************************

AT LINE-SELECTION.

IF sy-lsind = 4.

sy-lsind = 0.

ENDIF.

CASE SY-LSIND.

WHEN '2'.

CLEAR V_MATNR.

CLEAR IT_PLANT_REC.

SELECT MARCMATNR MARCWERKS T001W~NAME1 INTO CORRESPONDING FIELDS

OF TABLE IT_PLANT_REC

FROM MARC INNER JOIN T001W

ON MARCWERKS = T001WWERKS

WHERE MARC~MATNR = IT_MATERIAL_REC-MATNR.

LOOP AT IT_PLANT_REC.

SELECT SUM( LABST ) INTO IT_PLANT_REC-LABST

FROM MARD

WHERE MARDMATNR = IT_MATERIAL_REC-MATNR AND MARDWERKS =

IT_PLANT_REC-WERKS.

MODIFY IT_PLANT_REC.

ENDLOOP.

WRITE:/2 IT_MATERIAL_REC-MATNR , 22 IT_MATERIAL_REC-MAKTX , 115

TOTAL.

LOOP AT IT_PLANT_REC.

WRITE:/50 IT_PLANT_REC-WERKS , 62 IT_PLANT_REC-NAME1, 115

IT_PLANT_REC-LABST .

HIDE IT_PLANT_REC-WERKS.

HIDE IT_PLANT_REC-NAME1.

HIDE IT_PLANT_REC-MATNR.

ENDLOOP.

CLEAR: IT_MATERIAL_REC-MATNR.

WHEN '3'.

CLEAR IT_STORAGE_REC.

SELECT LGORT LABST INTO CORRESPONDING FIELDS OF TABLE

IT_STORAGE_REC

FROM MARD

WHERE MATNR = IT_PLANT_REC-MATNR AND WERKS = IT_PLANT_REC-WERKS.

LOOP AT IT_STORAGE_REC.

SELECT SINGLE LGOBE INTO CORRESPONDING FIELDS OF

IT_STORAGE_REC

FROM T001L

WHERE LGORT = IT_STORAGE_REC-LGORT.

MODIFY IT_STORAGE_REC.

ENDLOOP.

WRITE:/2 IT_PLANT_REC-MATNR , 22 IT_MATERIAL_REC-MAKTX , 115 TOTAL

.

WRITE:/50 IT_PLANT_REC-WERKS , 62 IT_PLANT_REC-NAME1.

LOOP AT IT_STORAGE_REC.

WRITE:/80 IT_STORAGE_REC-LGORT , 92 IT_STORAGE_REC-LGOBE

, 115 IT_STORAGE_REC-LABST.

CLEAR IT_STORAGE_REC.

ENDLOOP.

CLEAR IT_PLANT_REC-WERKS.

WHEN OTHERS.

WRITE:/ 'SORRY !!!!!!!! PRESS F12'.

EXIT.

ENDCASE.

************************************************************************

*********************************************************************

  • MENU

************************************************************************

*********************************************************************

AT USER-COMMAND.

SET PF-STATUS 'AK01'.

CASE SY-UCOMM.

WHEN 'EXT1'.

SET SCREEN 0.

LEAVE SCREEN.

WHEN 'EX01'.

DO LINES TIMES.

READ LINE SY-INDEX FIELD VALUE BOX.

IF BOX = 'X' .

WRITE:/2 IT_MATERIAL_REC-MATNR, 22 IT_MATERIAL_REC-MAKTX .

HIDE: IT_MATERIAL_REC-MATNR,

IT_MATERIAL_REC-MAKTX .

ENDIF.

ENDDO.

WHEN 'SELALL'.

DO LINES TIMES.

READ LINE SY-INDEX FIELD VALUE BOX.

IF BOX <> 'X' .

BOX = 'X'.

ENDIF.

ENDDO.

WHEN 'DESELALL'.

DO LINES TIMES.

READ LINE SY-INDEX FIELD VALUE BOX.

IF BOX = 'X' .

BOX = ' '.

ENDIF.

ENDDO.

ENDCASE.

************************************************************************

*********************************************************************

TOP-OF-PAGE.

ULINE 1(135).

WRITE:/ SY-VLINE , 135 SY-VLINE .

WRITE:2'RAPIDIGM INDIA LIMITED' COLOR 1.

WRITE:/ SY-VLINE , 135 SY-VLINE.

WRITE:2

' MATERIAL STOCK D' &

'ETAILS '

COLOR 6.

WRITE:/ SY-VLINE , 135 SY-VLINE.

WRITE: 120 'DATE' COLOR COL_HEADING , SY-DATUM.

WRITE:/ SY-VLINE , 135 SY-VLINE.

ULINE 1(135).

WRITE:/ SY-VLINE , 135 SY-VLINE.

ULINE 1(135).

WRITE:/ SY-VLINE , 135 SY-VLINE.

WRITE:2'MATERIAL NO' , 22 'DESCRIPTION', 50 'PLANT ID', 62

'PLANT NAME ' , 80 'STORAGE ID', 92 'LOC NAME' RIGHT-JUSTIFIED, 115

'QUANTITY' COLOR 6.

WRITE:/ SY-VLINE , 135 SY-VLINE.

ULINE 1(135).

TOP-OF-PAGE DURING LINE-SELECTION.

ULINE 1(135).

WRITE:/ SY-VLINE , 135 SY-VLINE .

WRITE:2'RAPIDIGM INDIA LIMITED' COLOR 1.

WRITE:/ SY-VLINE , 135 SY-VLINE.

WRITE:2

' MATERIAL STOCK D' &

'ETAILS '

COLOR 6.

WRITE:/ SY-VLINE , 135 SY-VLINE.

WRITE: 120 'DATE' COLOR COL_HEADING , SY-DATUM.

WRITE:/ SY-VLINE , 135 SY-VLINE.

ULINE 1(135).

WRITE:/ SY-VLINE , 135 SY-VLINE.

ULINE 1(135).

WRITE:/ SY-VLINE , 135 SY-VLINE.

WRITE:2'MATERIAL NO' , 22 'DESCRIPTION', 50 'PLANT ID', 62

'PLANT NAME ' , 80 'STORAGE ID', 92 'LOC NAME' RIGHT-JUSTIFIED, 115

'QUANTITY' COLOR 6.

WRITE:/ SY-VLINE , 135 SY-VLINE.

ULINE 1(135).