05-29-2006 5:16 PM
Hi,
I am very new to interactive reports..
Can anybody send me step by step process.
Thnx
sreenivas
05-29-2006 5:18 PM
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>
05-29-2006 5:19 PM
Hi,
Please check t/code <b>ABAPDOCU</b> for sample codes.
Hope this will help.
Regards,
Ferry Lianto
Please reward points if helpful.
05-29-2006 5:19 PM
05-29-2006 5:19 PM
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
05-29-2006 5:20 PM
05-29-2006 5:28 PM
Hi sreenivas,
chek this link:
www.planetsap.com/Abap_main_page_reports.htm - 29k
http://www.sap-img.com/abap/events-related-to-reporting.htm
http://www.sapgenie.com/abap/ireports.htm
www.sap-img.com/abap.htm - 22k
hope u will find a lot of examples in these sites.
regards,
keerthi.
05-29-2006 5:31 PM
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