04-30-2008 5:49 AM
Hi All,
Im new to SAP ABAP. I have worked with normal reporting and now i want to do the interactive reporting. can any one suggest me hw to proceed further.....
Thnks in advance.
04-30-2008 5:52 AM
Hi Bhavya Sri ,
Please check this link
http://help.sap.com/saphelp_nw04/helpdata/en/9f/dba2eb35c111d1829f0000e829fbfe/content.htm
http://abapprogramming.blogspot.com/2007/11/abap-multiple-interactive-report-sample.html
regards
raam
04-30-2008 5:50 AM
hi,,
see the simple interactive program: all u need is to capture the row which u clicked( user command & hide) , then use at line-selection for further processing.
TABLES: MARA, MAKT.
* Data Declaration
DATA: V_MATNR LIKE MARA-MATNR,
V_MAKTX LIKE MAKT-MAKTX.
* Internal table declaration
DATA: BEGIN OF I_MARA OCCURS 0,
MATNR LIKE MARA-MATNR,
END OF I_MARA,
BEGIN OF I_MAKT OCCURS 0,
MATNR LIKE MARA-MATNR,
MAKTX LIKE MAKT-MAKTX,
END OF I_MAKT.
START-OF-SELECTION.
* Select materials from MARA table
SELECT MATNR
UP TO 30 ROWS
INTO TABLE I_MARA
FROM MARA.
IF SY-SUBRC = 0.
SORT I_MARA.
DELETE ADJACENT DUPLICATES FROM I_MARA COMPARING MATNR.
ENDIF.
END-OF-SELECTION.
WRITE: 'MATERIAL NO'.
LOOP AT I_MARA.
WRITE:/ I_MARA-MATNR.
HIDE I_MARA-MATNR.
ENDLOOP.
AT LINE-SELECTION.
* Select Material description from MAKT
SELECT SINGLE MATNR MAKTX
INTO (V_MATNR, V_MAKTX)
FROM MAKT
WHERE MATNR = I_MARA-MATNR
AND SPRAS = 'EN'.
IF SY-SUBRC = 0.
WRITE: 'Material Number: ' , V_MATNR.
WRITE: 'Material Description: ', V_MAKTX.
ELSE.
WRITE: 'DESCRIPTION NOT FOUND FOR THE MATERIAL: ' , V_MATNR.
ENDIF.
regards,
madhumitha
04-30-2008 5:52 AM
Hi Bhavya Sri ,
Please check this link
http://help.sap.com/saphelp_nw04/helpdata/en/9f/dba2eb35c111d1829f0000e829fbfe/content.htm
http://abapprogramming.blogspot.com/2007/11/abap-multiple-interactive-report-sample.html
regards
raam
04-30-2008 5:56 AM
Hi,
Check this link.
Link:
[http://help.sap.com/saphelp_nw70/helpdata/EN/d2/cb40a4455611d189710000e8322d00/frameset.htm]
Following is a sample interactive report developed for our demo purpose:
REPORT zintractive .
TYPES : BEGIN OF str_mard,
matnr TYPE mard-matnr,
lgort TYPE mard-lgort,
werks TYPE mard-werks,
END OF str_mard.DATA : wa_mard TYPE str_mard,
it_mard TYPE TABLE OF str_mard.TYPES : BEGIN OF str_makt,
matnr TYPE makt-matnr,
maktg TYPE makt-maktg, END OF str_makt.DATA : wa_makt TYPE str_makt,
it_makt TYPE TABLE OF str_makt.TYPES : BEGIN OF str_mara,
matnr TYPE mara-matnr,
ersda TYPE mara-ersda,
ernam TYPE mara-ernam,
laeda TYPE mara-laeda,
mtart TYPE mara-mtart,
matkl TYPE mara-matkl,
meins TYPE mara-meins,
END OF str_mara.DATA : wa_mara TYPE str_mara,
it_mara TYPE TABLE OF str_mara.TYPES : BEGIN OF str_final,
matnr TYPE mara-matnr,
ersda TYPE mara-ersda,
ernam TYPE mara-ernam,
laeda TYPE mara-laeda,
mtart TYPE mara-mtart,
matkl TYPE mara-matkl,
meins TYPE mara-meins,
lgort TYPE mard-lgort,
werks TYPE mard-werks,
END OF str_final.DATA: wa_final TYPE str_final,
it_final TYPE TABLE OF str_final.PARAMETERS : plant TYPE mard-werks,
stor LIKE mard-lgort.SELECT matnr lgort werks
FROM mard
INTO TABLE it_mard
WHERE lgort = stor AND werks = plant.
.SELECT matnr maktg
FROM makt
INTO TABLE it_makt FOR ALL ENTRIES IN it_mard
WHERE matnr = it_mard-matnr AND spras = 'E'.
SELECT matnr ersda ernam laeda mtart matkl meins
FROM mara
INTO TABLE it_mara FOR ALL ENTRIES IN it_makt
WHERE matnr = it_makt-matnr.
LOOP AT it_makt INTO wa_makt.
WRITE : /1 wa_makt-matnr COLOR 1,
40 wa_makt-maktg COLOR 2.
HIDE wa_makt-matnr.
ENDLOOP.CLEAR wa_mard-matnr.AT LINE-SELECTION.
REFRESH it_final.
CLEAR wa_final.
ULINE.
IF sy-lsind = 1.
WRITE : /1 'MATERIAL NO' COLOR 2,
20 'CREATION DATE' COLOR 3,
32 'PERSON CREATED',
50 'DATE OF LIST' ,
65 'MATERIALTYPE',
80 'MATGROUP' ,
90 'UNITOFMEASURE',
110 'STORLOCATION' COLOR 4,
130 'PLANT' COLOR 5.
ULINE.
ENDIF. LOOP AT it_mara INTO wa_mara WHERE matnr = wa_makt-matnr. wa_final-matnr = wa_mara-matnr.
wa_final-ersda = wa_mara-ersda.
wa_final-ernam = wa_mara-ernam.
wa_final-laeda = wa_mara-laeda.
wa_final-mtart = wa_mara-mtart.
wa_final-matkl = wa_mara-matkl.
wa_final-meins = wa_mara-meins. READ TABLE it_mard INTO wa_mard WITH KEY matnr = wa_makt-matnr. wa_final-lgort = wa_mard-lgort.
wa_final-werks = wa_mard-werks. APPEND wa_final TO it_final. ENDLOOP. LOOP AT it_final INTO wa_final. WRITE : /1 wa_final-matnr COLOR 2,
20 wa_final-ersda COLOR 3,
37 wa_final-ernam,
50 wa_final-laeda ,
70 wa_final-mtart ,
85 wa_final-matkl ,
95 wa_final-meins,
115 wa_final-lgort COLOR 4,
130 wa_final-werks COLOR 5.
ENDLOOP.TOP-OF-PAGE.
WRITE : /1 'MATERIAL NO' COLOR 1,
40 'DISCRIPTION' COLOR 2.
ULINE .
Check this link too....
Link:
[http://www.saptechnical.com/Tutorials/ABAP/InteractiveReport/page1.htm]
Reward if helpful.
04-30-2008 5:56 AM
Hai,may be this examplw may help to u.
&----
*& Report ZNAGALV
*&
&----
*&
*&
&----
REPORT ZNAGALV.
TYPE-POOLS SLIS.
TABLES : VBAK, vbap.
DECLARATION OF INTERNAL TABLES FOR BASIC LIST
DATA : BEGIN OF IT_BASIC OCCURS 0,
VKORG LIKE VBAK-VKORG,
VTWEG LIKE VBAK-VTWEG,
SPART LIKE VBAK-SPART,
AUDAT LIKE VBAK-AUDAT,
VBELN LIKE VBAK-VBELN,
KUNNR LIKE VBAK-KUNNR,
NETWR LIKE VBAK-NETWR,
KNUMV LIKE VBAK-KNUMV,
MATNR LIKE VBAP-MATNR,
GBStk like vbuk-GBStk,
POSNR LIKE VBAP-POSNR,
WERKS LIKE VBAP-WERKS,
PARVW LIKE VBPA-PARVW,
BSTKD LIKE VBKD-BSTKD,
BSTDK LIKE VBKD-BSTDK,
END OF IT_BASIC.
DATA: BEGIN OF IT_SECOND OCCURS 0,
KNUMV LIKE KONV-KNUMV,
KPOSN LIKE KONV-KPOSN,
KSCHL LIKE KONV-KSCHL,
KBETR LIKE KONV-KBETR,
KWERT LIKE KONV-KWERT,
END OF IT_SECOND.
DATA: BEGIN OF IT_THIRD OCCURS 0,
KSCHL LIKE KONV-KSCHL,
VTEXT LIKE T685T-VTEXT,
END OF IT_THIRD.
DATA: BEGIN OF IT_FOURTH OCCURS 0,
KNUMV LIKE KONV-KNUMV,
KPOSN LIKE KONV-KPOSN,
KSCHL LIKE KONV-KSCHL,
KBETR LIKE KONV-KBETR,
KWERT LIKE KONV-KWERT,
VTEXT LIKE T685T-VTEXT,
END OF IT_FOURTH.
DECLARATION OF INTERNAL TABLES FOR SECONDARY LIST
DATA: BEGIN OF IT_FINAL2 OCCURS 0,
*INCLUDE STRUCTURE ZNAG_STRU.
KNUMV LIKE KONV-KNUMV,
KPOSN LIKE KONV-KPOSN,
KSCHL LIKE KONV-KSCHL,
KBETR LIKE KONV-KBETR,
KWERT LIKE KONV-KWERT,
VTEXT LIKE T685T-VTEXT.
data END OF IT_FINAL2.
*data it_final3 type ZNAG_LINE.
*data it_final4 like it_final3 occurs 0 .
data begin of it_final3 OCCURS 0.
INCLUDE structure ZNAG_stru.
data end of it_final3.
*DATA IT_FINAL3 TYPE STANDARD TABLE OF IT_FINAL2.
DATA F_INDEX TYPE SY-TABIX .
*Title displayed when the alv list is displayed
DATA: I_TITLE_BASIC TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED',
i_title_SECOND type lvc_title value 'secondary list displayed',
V_REPID TYPE SY-REPID.
Declaration for fieldcatalog
DATA: FIELDCAT1 TYPE SLIS_FIELDCAT_ALV,
FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
data: v_events type slis_t_event,
wa_event type slis_alv_event.
DATA FNIT_FINAL TYPE RS38L_FNAM.
selection-screen begin of block b1
with frame TITLE TEXT-001 no intervals.
PARAMETERS : VKORG LIKE VBAK-VKORG obligatory,
VTWEG LIKE VBAK-VTWEG obligatory,
SPART LIKE VBAK-SPART obligatory.
selection-screen end of block b1.
selection-screen begin of block b2 with frame.
SELECT-OPTIONS : AUDAT FOR VBAK-AUDAT obligatory,
VBELN FOR VBAK-VBELN,
KUNNR FOR VBAK-KUNNR,
MATNR FOR VBAP-MATNR.
selection-screen end of block b2.
selection-screen begin of block b3 with frame NO INTERVALS.
PARAMETERS : G1 RADIOBUTTON GROUP RADI DEFAULT 'X',
G2 RADIOBUTTON GROUP RADI.
selection-screen end of block b3.
initialization.
audat-sign = 'I'.
audat-option = 'BT'.
audat-low = sy-datum - 30.
audat-high = sy-datum.
append audat.
V_REPID = SY-REPID.
perform event_call_basic.
*perform populate_event_basic.
AT SELECTION-SCREEN.
start-of-selection.
SELECT VBELN FROM VBAK INTO CORRESPONDING FIELDS
OF VBAK WHERE vkorg = vkorg and
vtweg = vtweg and spart = spart and
audat IN AUDAT.
IF SY-SUBRC = 0.
IF G1 = 'X'.
PERFORM DATA_RETRIEVAL_OPEN_ORDERS.
else.
PERFORM DATA_RETRIEVAL_ALL_ORDERS.
ENDIF.
else.
message 'no records found' type 'E'.
EXIT.
endif.
EXIT.
endselect.
FIELDCAT1-FIELDNAME = 'VBELN'.
FIELDCAT1-TABNAME = 'IT_BASIC'.
FIELDCAT1-REF_TABNAME = 'VBAK'.
FIELDCAT1-HOTSPOT = 'X'.
APPEND FIELDCAT1 TO FIELDCAT.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = V_REPID
I_INTERNAL_TABNAME = 'IT_BASIC'
I_STRUCTURE_NAME = 'VBAK'
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = SY-REPID
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = FIELDCAT[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
*IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*
*ENDIF.
PERFORM DISPLAY_ALV_ITAB1.
&----
*& Form OPEN_ORDERS
&----
RETRIEVING VALUES FROM DATABASE TABLES INTO INTERNAL
TABLE FOR OPEN ORDERS
----
--> p1 text
<-- p2 text
----
form DATA_RETRIEVAL_OPEN_ORDERS .
CLEAR IT_BASIC.
SELECT DISTINCT Avkorg Avtweg Aspart Aaudat A~VBELN
A~kunnr
ANETWR AKNUMV C~MATNR
Bgbstk CPOSNR
CWERKS DPARVW
EBSTKD EBSTDK
INTO CORRESPONDING FIELDS OF TABLE IT_BASIC
FROM VBUK as B
INNER JOIN VBAK as A
on Avbeln = Bvbeln INNER JOIN VBAP AS C
ON AVBELN = CVBELN INNER JOIN VBPA AS D
ON AVBELN = DVBELN AND D~POSNR = '000000'
AND D~PARVW = 'WE'
INNER JOIN VBKD AS E
ON AVBELN = EVBELN
WHERE gbstk <> 'C' AND
A~VTWEG = VTWEG AND
AUDAT IN AUDAT AND
A~VBELN IN VBELN AND
A~KUNNR IN KUNNR AND
C~MATNR IN MATNR.
endform. " OPEN_ORDERS
&----
*& Form ALL_ORDERS
&----
RETRIEVING VALUES FROM DATABASE TABLES INTO
INTERNAL TABLE FOR ALL ORDERS
----
--> p1 text
<-- p2 text
----
form DATA_RETRIEVAL_ALL_ORDERS .
CLEAR IT_BASIC.
SELECT DISTINCT Avkorg Avtweg Aspart Aaudat A~VBELN
A~kunnr
ANETWR AKNUMV CMATNR BgbsTK C~POSNR
CWERKS DPARVW
EBSTKD EBSTDK
INTO CORRESPONDING FIELDS OF TABLE IT_BASIC
FROM VBUK as B inner join VBAK as A
on Avbeln = Bvbeln INNER JOIN VBAP AS C
ON AVBELN = CVBELN INNER JOIN VBPA AS D
ON AVBELN = DVBELN AND D~POSNR = '000000'
AND D~PARVW = 'WE'
INNER JOIN VBKD AS E
ON AVBELN = EVBELN
WHERE VTWEG = VTWEG AND
AUDAT IN AUDAT AND
A~VBELN IN VBELN AND
A~KUNNR IN KUNNR AND
C~MATNR IN MATNR.
endform. " ALL_ORDERS
&----
*& Form DISPLAY_ALV_ITAB1
&----
DISPLAYing BASIC LIST USING GRID DISPLAY
----
--> p1 text
<-- p2 text
----
form DISPLAY_ALV_ITAB1 .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = 'GUI'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_TITLE_BASIC
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = V_EVENTS
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = IT_BASIC[]
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endform. " DISPLAY_ALV_ITAB1
FORM GUI USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'GUI' EXCLUDING RT_EXTAB.
ENDFORM. " GUI
*form POPULATE_EVENT_BASIC .
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC = 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE
NAME = WA_EVENT-FORM.
ENDIF.
*
**READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC = 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE
NAME = WA_EVENT-FORM.
ENDIF.
*endform. " POPULATE_EVENT_BASIC
&----
*& Form event_call
&----
text
----
--> p1 text
<-- p2 text
----
form event_call_basic .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = v_events
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
.
*IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*ENDIF.
endform. " event_call_basic
START OF SECONDARY LIST
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD
TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
clear r_ucomm.
READ TABLE IT_BASIC INDEX RS_SELFIELD-TABINDEX.
PERFORM EVENT_CALL_second.
PERFORM POPULATE_EVENT_second.
IF SY-SUBRC = 0.
refresh IT_FOURTH.
CLEAR IT_FINAL2.
REFRESH IT_FINAL2.
PERFORM DATA_RETRIEVAL_second.
SY-TABIX = 1.
f_index = 1.
LOOP AT IT_FOURTH.
read table IT_FOURTH into IT_FINAL2
INDEX F_INDEX.
move-corresponding it_fourth to it_final2.
IF SY-SUBRC = 0.
append IT_FINAL2.
SY-TABIX = SY-TABIX + 1.
F_INDEX = SY-TABIX.
ENDIF.
CLEAR IT_FOURTH.
CLEAR IT_FINAL2.
ENDLOOP.
ENDIF.
CLEAR FIELDCAT.
PERFORM FIELDCAT_SECOND.
PERFORM DISPLAY_ALV_SECOND.
ENDCASE.
ENDFORM.
form EVENT_CALL_second.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = v_events
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
.
*IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*ENDIF.
ENDFORM.
form DATA_RETRIEVAL_second .
SELECT KNUMV KPOSN KSCHL KBETR KWERT
INTO TABLE IT_SECOND FROM KONV
WHERE KNUMV = IT_BASIC-KNUMV.
IF SY-SUBRC = 0.
SELECT KSCHL VTEXT FROM T685T INTO
TABLE IT_THIRD FOR ALL ENTRIES IN
IT_SECOND WHERE KSCHL = IT_SECOND-KSCHL AND SPRAS = SY-LANGU
AND KVEWE = 'A' AND KAPPL = 'V'.
READ TABLE IT_SECOND WITH KEY KNUMV = IT_BASIC-KNUMV.
IF SY-SUBRC = 0.
LOOP AT IT_SECOND.
READ TABLE IT_THIRD WITH KEY KSCHL = IT_SECOND-KSCHL.
IF SY-SUBRC = 0.
MOVE-CORRESPONDING IT_SECOND TO IT_FOURTH.
MOVE-CORRESPONDING IT_THIRD TO IT_FOURTH.
APPEND IT_FOURTH.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
endform. " DATA_RETRIEVAL_second
&----
*& Form populate_event
&----
text
----
--> p1 text
<-- p2 text
----
form populate_event_SECOND .
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC = 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE
NAME = WA_EVENT-FORM.
ENDIF.
endform. " populate_event_second
&----
*& Form DISPLAY_ALV_SECOND
&----
text
----
--> p1 text
<-- p2 text
----
form DISPLAY_ALV_SECOND .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMM'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = i_title_SECOND
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = V_EVENTS
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = IT_FINAL2[]
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CASE SY-UCOMM.
WHEN '1'.
MESSAGE 'PROGRAM ERROR' TYPE 'E'.
EXIT.
WHEN '2'.
MESSAGE 'OTHERS' TYPE 'E'.
EXIT.
ENDCASE.
endform. " DISPLAY_ALV_SECOND
&----
*& Form FIELDCAT_SECOND
&----
text
----
--> p1 text
<-- p2 text
----
form FIELDCAT_SECOND .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'IT_FINAL2'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = SY-REPID
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endform. " FIELDCAT_SECOND
FORM STATUS USING RT_EXTAB1 TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STATUS' EXCLUDING RT_EXTAB1.
ENDFORM. " STATUS
FORM USER_COMM USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&PRIN'.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'Z_NAG_ALV'
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
FM_NAME = FNIT_FINAL
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
REFRESH IT_FINAL3.
loop at it_final2.
move-corresponding it_final2 to it_final3.
append it_final3.
endloop.
CALL FUNCTION FNIT_FINAL
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS =
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS =
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
TABLES
it_final3 = IT_FINAL3[]
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDCASE.
ENDFORM.
04-30-2008 6:00 AM
INTERACTIVE REPORTS
firstly study about the basics like what is interactive reporting and its uses and advantages over the other reports,
various events used, system variables helpful in doing the reports,
statements like hide getcursor etc
the below is just a reference. if any quieries revert back. if have any quires we will help you . All The Best
As the name suggests, the user can Interact with the report. We can have a drill down into the report data. For example, Column one of the report displays the material numbers, and the user feels that he needs some more specific data about the vendor for that material, he can HIDE that data under those material numbers.
And when the user clicks the material number, another report (actually sub report/secondary list) which displays the vendor details will be displayed.
We can have a basic list (number starts from 0) and 20 secondary lists (1 to 21).
Events associated with Interactive Reports are:
AT LINE-SELECTION
AT USER-COMMAND
AT PF<key>
TOP-OF-PAGE DURING LINE-SELECTION.
HIDE statement holds the data to be displayed in the secondary list.
sy-lisel : contains data of the selected line.
sy-lsind : contains the level of report (from 0 to 21)
Interactive Report Events:
AT LINE-SELECTION : This Event triggers when we double click a line on the list, when the event is triggered a new sublist is going to be generated. Under this event what ever the statements that are been return will be displayed on newly generated sublist.
AT PFn: For predefined function keys...
AT USER-COMMAND : It provides user functions keys.
TOP-OF-PAGE DURING LINE-SELECTION :top of page event for secondary list.
reward if helpful
prasanth
04-30-2008 6:04 AM
Hi,
have a look at demo programs
DEMO_LIST_INTERACTIVE_1
DEMO_LIST_INTERACTIVE_2
DEMO_LIST_INTERACTIVE_3
DEMO_LIST_INTERACTIVE_4
DEMO_LIST_HIDE
If you get further doubts at that point get back to the forum. You can also do some reading at this link
http://help.sap.com/saphelp_46c/helpdata/en/d3/2e974d35c511d1829f0000e829fbfe/frameset.htm
Follow the path
BC - ABAP Programming
Introduction to ABAP
The ABAP Programming Language
ABAP User Dialogs
Screens
Selection Screens
Lists
Creating Lists
Interactive Lists
Regards
Kiran Sure
04-30-2008 7:49 AM