Application Development 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: 

Interactive report

Former Member
0 Kudos

Hi,

I am very new to interactive reports..

Can anybody send me step by step process.

Thnx

sreenivas

7 REPLIES 7

rahulkavuri
Active Contributor
0 Kudos

This is a Stock report... The difference between a interactive and normal report is when u need to define <b>at line-selection event</b> where <b>get cursor</b> gets the value or <b>hot spot on</b> which acts like a buffer to store the value u have clicked with the mouse and goes to the second screen...

*&---------------------------------------------------------------------*
*& Report  Y_KARTHIK_TEST                                              *
*&                                                                     *
*&---------------------------------------------------------------------*
*& Program Name: Test Program for Interactive Reports                  *
*  Developer Name: ADCDEV (Karthik )                                   *
*  Description: Interactive Report for Display Billing Doc.Details     *
*& Date:21st July 2004                                                 *
*&---------------------------------------------------------------------*


REPORT  Y_KARTHIK_TEST
         NO STANDARD PAGE HEADING
         LINE-COUNT 65(3)
         LINE-SIZE 130
         MESSAGE-ID Z_BALA_MESSAGES.
************************************************************************
*                             Type Pools                               *
************************************************************************
TYPE-POOLS:
           SLIS.

************************************************************************
*                             Variables                                *
************************************************************************
DATA:
    V_COL TYPE C.                  "For SWAPPING COLORS


************************************************************************
*                              Tables                                  *
************************************************************************

TABLES:
      VBRK,                               "Billing Document: Header Data
      VBRP,                               "Billing Document: Item Data
      MARA.                               "Material Master
************************************************************************
*                         Internal Tables                              *
************************************************************************
* Table to Hold the Header and Item
DATA:BEGIN OF I_BILLDOC_DETAILS OCCURS 0,
     VBELN TYPE VBELN_VF,       "Billing Document
     WAERK TYPE WAERK,          "Document Currency
     VKORG TYPE VKORG,          "Organization
     FKDAT TYPE FKDAT,          "Date of Bill Doc
     BUKRS TYPE BUKRS,          "Company Code
     NETWR TYPE NETWR,          "Net Value in Currency
     POSNR TYPE POSNR_VF,       "Billing Item
     FKIMG TYPE FKIMG,          "Actual Invoiced Quantity
     VRKME TYPE VRKME,          "Sales Unit
     NTGEW TYPE NTGEW,          "NetWeight
     NETWR1 TYPE NETWR,         "Net Value for Line Item
     MATNR TYPE MATNR,          "Material Number
     ARKTX TYPE ARKTX,          "Short Text
     END OF I_BILLDOC_DETAILS.
DATA:
    I_BILLDOC_DETAILS1 LIKE I_BILLDOC_DETAILS OCCURS 0 WITH HEADER LINE.

* Table to Contain the Sales Order Text
DATA: BEGIN OF I_SALESORG_TXT OCCURS 0,
     VKORG TYPE VKORG,          "Sales Organization
     VTEXT TYPE VTXTK,          "Sales Org Text
     END OF I_SALESORG_TXT.
* Table to Contain the Company Code
DATA: BEGIN OF I_COCD_TXT OCCURS 0,
      BUKRS TYPE BUKRS,          "Company Code
      BUTXT TYPE BUTXT,          "Short Text
      END OF I_COCD_TXT.
* Table for Changing the PF Status
DATA: I_EXCLTAB TYPE SLIS_EXTAB OCCURS 0 WITH HEADER LINE.
************************************************************************
*                             Work Areas                               *
************************************************************************
DATA:
    WA_BILLDOC LIKE I_BILLDOC_DETAILS.

************************************************************************
*                       Selection-Screen                               *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:
* Billing Document
              S_VBELN FOR VBRK-VBELN,
* Billing date
              S_FKDAT FOR VBRK-FKDAT OBLIGATORY,
* Material Number
              S_MATNR FOR VBRP-MATNR.

SELECTION-SCREEN END OF BLOCK B1.

************************************************************************
*                          Initialization                              *
************************************************************************
INITIALIZATION.
* Setting the Date Defaults.
  PERFORM SET_DEFAULT_DATE.

************************************************************************
*                     At  Selection-Screen                             *
************************************************************************
AT SELECTION-SCREEN ON S_VBELN.

* Checking for Valid Billing Document
  PERFORM VALIDATE_BILLING_DOC.

AT SELECTION-SCREEN ON S_MATNR.
* Checking for Valid Material Number
  PERFORM VALIDATE_MATERIAL_NUMBER.

************************************************************************
*                       Start of Selection                             *
************************************************************************
START-OF-SELECTION.
* Getting Billing Document Details (Header / Item)
  PERFORM GET_BILLDOC_DETAILS.

* Getting Sales Organization Text
  PERFORM GET_SALESORG_TEXT.

* Getting the Company Code Text
  PERFORM GET_COMP_CODE_TXT.
************************************************************************
*                         End of Selection                             *
************************************************************************
END-OF-SELECTION.
  IF NOT I_BILLDOC_DETAILS[] IS INITIAL.
* Writing the Primary Details.
    PERFORM GENERATE_PRIMARY_LIST.
  ELSE.
    MESSAGE I001 WITH 'No Entries Found for Selection Criteria'.
  ENDIF.
************************************************************************
*                            Top of Page                               *
************************************************************************
TOP-OF-PAGE.
*Getting Header for Primart List
  PERFORM TOP_OF_PAGE.

************************************************************************
*                          At Line-Selection                           *
************************************************************************
AT LINE-SELECTION.
* Generate Secondary List.
  PERFORM GENERATE_SECONDARY_LIST.

************************************************************************
*                 Top of Page During Line Selection                    *
************************************************************************
TOP-OF-PAGE DURING LINE-SELECTION.
* Header for Secondary List
  PERFORM TOP-OF-PAGE-LINSEL.

*&---------------------------------------------------------------------*
*&      Form  validate_entries
*&---------------------------------------------------------------------*
*       Validate Entries on Screen (Material)
*----------------------------------------------------------------------*

FORM VALIDATE_BILLING_DOC.
  CLEAR VBRK.
  SELECT SINGLE *
         FROM VBRK
         INTO VBRK
         WHERE
           VBELN IN S_VBELN.

  IF SY-SUBRC <> 0.
    MESSAGE E001 WITH 'Enter Valid Billing Document Number'.
  ENDIF.
ENDFORM.                    " validate_entries
*&---------------------------------------------------------------------*
*&      Form  validate_Material_Number
*&---------------------------------------------------------------------*
*       Checking for Valid Material Number
*----------------------------------------------------------------------*

FORM VALIDATE_MATERIAL_NUMBER .
  SELECT SINGLE *
         FROM MARA
         INTO MARA
         WHERE MATNR IN S_MATNR.

  IF SY-SUBRC <> 0.
    MESSAGE E001 WITH 'Enter Valid Material Number'.
  ENDIF.

ENDFORM.                    " validate_Material_Number
*&---------------------------------------------------------------------*
*&      Form  set_default_date
*&---------------------------------------------------------------------*
*       Set The Default Dates
*----------------------------------------------------------------------*
FORM SET_DEFAULT_DATE .
  DATA:
* Local Variable for Subtracting Date.
      L_DATE LIKE SY-DATUM.
  L_DATE = SY-DATUM - 200.
  CLEAR S_FKDAT.
  REFRESH S_FKDAT.
  S_FKDAT-HIGH = SY-DATUM.
  S_FKDAT-LOW = L_DATE.
  S_FKDAT-OPTION = 'BT'.
  S_FKDAT-SIGN = 'I'.
  APPEND S_FKDAT.
ENDFORM.                    " set_default_date
*&---------------------------------------------------------------------*
*&      Form  get_billdoc_details
*&---------------------------------------------------------------------*
*       Obtaining the Header/Item Details of the Bill Docs
*----------------------------------------------------------------------*

FORM GET_BILLDOC_DETAILS .
  SELECT
    VK~VBELN
    VK~WAERK
    VK~VKORG
    VK~FKDAT
    VK~BUKRS
    VK~NETWR
    VP~POSNR
    VP~FKIMG
    VP~VRKME
    VP~NTGEW
    VP~NETWR
    VP~MATNR
    VP~ARKTX
     FROM VBRK AS VK
     INNER JOIN VBRP AS VP
     ON VK~VBELN = VP~VBELN
     INTO TABLE I_BILLDOC_DETAILS
     WHERE
       VK~VBELN IN S_VBELN AND
       VK~FKDAT IN S_FKDAT AND
       VP~MATNR IN S_MATNR AND
* Selecting the Valid Documents
       VK~FKSTO = SPACE.
  IF SY-SUBRC = 0.
    SORT I_BILLDOC_DETAILS BY VBELN.
  ENDIF.

ENDFORM.                    " get_billdoc_details
*&---------------------------------------------------------------------*
*&      Form  get_salesorg_text
*&---------------------------------------------------------------------*
*       Getting the Sales Organization Text
*----------------------------------------------------------------------*

FORM GET_SALESORG_TEXT .
  IF NOT I_BILLDOC_DETAILS[] IS INITIAL.
    SELECT
      VKORG
      VTEXT
      FROM TVKOT
      INTO TABLE I_SALESORG_TXT
      FOR ALL ENTRIES IN I_BILLDOC_DETAILS WHERE
      VKORG = I_BILLDOC_DETAILS-VKORG AND
      SPRAS = SY-LANGU.
    IF SY-SUBRC = 0.
      DELETE ADJACENT DUPLICATES FROM I_SALESORG_TXT COMPARING VKORG.
      SORT I_SALESORG_TXT BY VKORG.
    ENDIF.
  ENDIF.
ENDFORM.                    " get_salesorg_text
*&---------------------------------------------------------------------*
*&      Form  get_comp_code_txt
*&---------------------------------------------------------------------*
*       Getting the Company Code Text
*----------------------------------------------------------------------*

FORM GET_COMP_CODE_TXT .
  IF NOT I_BILLDOC_DETAILS[] IS INITIAL.
    SELECT
      BUKRS
      BUTXT
      FROM T001
      INTO TABLE I_COCD_TXT
      FOR ALL ENTRIES IN I_BILLDOC_DETAILS
      WHERE BUKRS = I_BILLDOC_DETAILS-BUKRS.
    IF SY-SUBRC = 0.
      DELETE ADJACENT DUPLICATES FROM I_COCD_TXT COMPARING BUKRS.
      SORT I_COCD_TXT BY BUKRS.
    ENDIF.
  ENDIF.
ENDFORM.                    " get_comp_code_txt
*&---------------------------------------------------------------------*
*&      Form  generate_primary_list
*&---------------------------------------------------------------------*
*       Generate Primary List for Report
*----------------------------------------------------------------------*

FORM GENERATE_PRIMARY_LIST .
*  set pf-status 'INTREPORT'.

  LOOP AT I_BILLDOC_DETAILS.
* Printing On Primary List
    AT NEW VBELN.
    READ TABLE I_BILLDOC_DETAILS INDEX SY-TABIX TRANSPORTING ALL FIELDS.
* Getting Company Code text and Sales Ord Text.
      READ TABLE I_COCD_TXT WITH KEY
                     BUKRS = I_BILLDOC_DETAILS-BUKRS
                     BINARY SEARCH
                     TRANSPORTING BUTXT.
      READ TABLE I_SALESORG_TXT WITH KEY
                     VKORG = I_BILLDOC_DETAILS-VKORG
                     BINARY SEARCH
                     TRANSPORTING VTEXT.
      ULINE:/1(115).
      PERFORM COL_SWAP.
      WRITE:/1(1) SY-VLINE,
             (10) I_BILLDOC_DETAILS-VBELN,
             (1) SY-VLINE,
             (20) I_SALESORG_TXT-VTEXT,
             (1) SY-VLINE,
             (10) I_BILLDOC_DETAILS-FKDAT,
             (1) SY-VLINE,
             (25) I_COCD_TXT-BUTXT,
             (1) SY-VLINE,
          (21) I_BILLDOC_DETAILS-NETWR CURRENCY I_BILLDOC_DETAILS-WAERK,
             (1) SY-VLINE,
             (8) I_BILLDOC_DETAILS-WAERK,
             115 SY-VLINE.
* Hiding Parameter For secondary List
      HIDE I_BILLDOC_DETAILS-VBELN.
    ENDAT.
  ENDLOOP.
  ULINE:/1(115).

ENDFORM.                    " generate_primary_list

*---------------------------------------------------------------------*
*       FORM COL_SWAP                                                 *
*---------------------------------------------------------------------*
*       Used for Swapping colors                                      *
*---------------------------------------------------------------------*
FORM COL_SWAP.
  FORMAT RESET.
  WRITE: '  '.
  IF V_COL = 'X'.
    FORMAT COLOR COL_NORMAL INTENSIFIED ON .
    CLEAR V_COL.
  ELSE.
    FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
    V_COL = 'X'.
  ENDIF.

ENDFORM.                    "COL_SWAP
*&---------------------------------------------------------------------*
*&      Form  top_of_page
*&---------------------------------------------------------------------*
*       Getting Header for Primary List
*----------------------------------------------------------------------*

FORM TOP_OF_PAGE .
  ULINE:/1(115).
  FORMAT COLOR COL_HEADING INTENSIFIED ON.
  WRITE:/1 SY-VLINE,
        42 'IGAP',
        115 SY-VLINE.
  WRITE:/1 SY-VLINE,
        50 'Hyderabad',
        115 SY-VLINE.
  WRITE:/1 SY-VLINE,
        45 'Billing Header Details',
        115 SY-VLINE.
  WRITE:/1 SY-VLINE,
           'Date: ',
           S_FKDAT-LOW,
           'To',
           S_FKDAT-HIGH,
           115 SY-VLINE.

  FORMAT RESET.

  ULINE:/1(115).
  FORMAT RESET.
  FORMAT COLOR COL_KEY INTENSIFIED OFF.
  WRITE:/1(1) SY-VLINE,
         (10) 'Bill Doc',
         (1) SY-VLINE,
         (20) 'Sales Organization',
         (1) SY-VLINE,
         (10) 'Bill Date',
         (1) SY-VLINE,
         (25) 'Company Name',
         (1) SY-VLINE,
         (21) 'Amount',
         (1) SY-VLINE,
         (8) 'Currency',
         115 SY-VLINE.

ENDFORM.                    " top_of_page
*&---------------------------------------------------------------------*
*&      Form  generate_secondary_list
*&---------------------------------------------------------------------*
*       Secondary Lis for Report
*----------------------------------------------------------------------*

FORM GENERATE_SECONDARY_LIST .
  IF SY-LSIND = 1.
    CLEAR V_COL.
    I_BILLDOC_DETAILS1[] = I_BILLDOC_DETAILS[].
    DELETE I_BILLDOC_DETAILS1 WHERE VBELN NE I_BILLDOC_DETAILS-VBELN.

    LOOP AT I_BILLDOC_DETAILS1.
      ULINE:/1(130).
      PERFORM COL_SWAP.
      WRITE:/1(1) SY-VLINE,
             (7) I_BILLDOC_DETAILS1-POSNR,
             (1) SY-VLINE,
             (18) I_BILLDOC_DETAILS1-MATNR,
             (1) SY-VLINE,
             (40) I_BILLDOC_DETAILS1-ARKTX,
             (1) SY-VLINE,
             (19) I_BILLDOC_DETAILS1-NTGEW,
             (1) SY-VLINE,
             (6) I_BILLDOC_DETAILS1-VRKME,
             (1) SY-VLINE,
        (21) I_BILLDOC_DETAILS1-NETWR1 CURRENCY I_BILLDOC_DETAILS-WAERK,
              130 SY-VLINE.
      AT LAST.
        SUM.
        ULINE:/1(130).
        FORMAT RESET.
        FORMAT COLOR COL_TOTAL INTENSIFIED ON.
        WRITE:/1 SY-VLINE,
               2 'Grand Total',
               75 SY-VLINE,
               79 I_BILLDOC_DETAILS1-NTGEW,
               97 SY-VLINE,
               106 SY-VLINE,
         108 I_BILLDOC_DETAILS1-NETWR1 CURRENCY I_BILLDOC_DETAILS-WAERK,
               130 SY-VLINE.
      ENDAT.
    ENDLOOP.
    ULINE:/1(130).
  ELSE.
    MESSAGE I001 WITH 'No Further Navigation Possible'.
  ENDIF.
ENDFORM.                    " generate_secondary_list
*&---------------------------------------------------------------------*
*&      Form  top-of-page-linsel
*&---------------------------------------------------------------------*
*       Header For Secondary List
*----------------------------------------------------------------------*

FORM TOP-OF-PAGE-LINSEL.
  ULINE:/1(130).
  FORMAT COLOR COL_HEADING INTENSIFIED ON.
  WRITE:/1 SY-VLINE,
        50 'IGAP',
        130 SY-VLINE.
  WRITE:/1 SY-VLINE,
        55 'Hyderabad',
        130 SY-VLINE.
  WRITE:/1 SY-VLINE,
        51 'Billing Item Details',
        130 SY-VLINE.

  FORMAT RESET.

  ULINE:/1(130).
  FORMAT RESET.
  FORMAT COLOR COL_KEY INTENSIFIED OFF.
  WRITE:/1(1) SY-VLINE,
         (7) 'Item.No',
         (1) SY-VLINE,
         (18) 'Material Number',
         (1) SY-VLINE,
         (40) 'Material Description',
         (1) SY-VLINE,
         (19) 'Net Weight',
         (1) SY-VLINE,
         (6) 'Unit',
         (1) SY-VLINE,
         (21) 'Net Value',
          130 SY-VLINE.
ENDFORM.                    " top-of-page-linsel

<b>Copy and run the code above</b>

The above one is At-line selection event and get cursor, the below code depicts usuage of hot spot and hide to store the value in buffer

FORM DISPLAY_BASIC_LIST .
  LOOP AT IT_MAKT.

    ULINE.

            WRITE:/ IT_MAKT-MATNR HOTSPOT ON ,
            IT_MAKT-MAKTX.
 HIDE: IT_MAKT-MATNR.
  ENDLOOP.

end form

<b>

Please award points if found helpful</b>

ferry_lianto
Active Contributor
0 Kudos

Hi,

Please check t/code <b>ABAPDOCU</b> for sample codes.

Hope this will help.

Regards,

Ferry Lianto

Please reward points if helpful.

Former Member
0 Kudos

Hi,

Do check in ABAPDOCU transaction.

Cheers,

Sampath.

former_member927251
Active Contributor
0 Kudos

Hi,

Have a look at the demo reports in SE38:

<b>DEMO_LIST_INTERACTIVE_1

DEMO_LIST_INTERACTIVE_2

DEMO_LIST_INTERACTIVE_3

<b>DEMO_LIST_INTERACTIVE_4</b>

Reward points if it helps to start up.</b>

Regards,

Amit Mishra

suresh_datti
Active Contributor
0 Kudos

PL check the sample program DEMO_LIST_HIDE.

Regards,

Suresh Datti

Former Member
0 Kudos

Former Member
0 Kudos

Hi,

Check This Links

http://www.sapgenie.com/abap/example_code.htm

http://cma.zdnet.com/book/abap/index.htm

it contains lots of demo Programs

Even Try

Transaction DWDM ---( Demo Program List )

Go to Se38

Type DEMO and press F4 for list of demo PRograms