‎2008 Oct 11 5:37 AM
hi gurus,
can anyone give me the example of how to create an alv interactive report.
thankyou
‎2008 Oct 11 5:39 AM
HI
see below code
*SET PF-STATUS 'YSTATUS'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
is_layout = gs_layout
i_buffer_active = 'X'
it_fieldcat = ct_fieldcat[]
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_DEFAULT = 'X'
I_CALLBACK_USER_COMMAND = 'HANDLE_USER_COMMAND'
i_save = 'A'
TABLES
t_outtab = lt_purchase[].
EXCEPTIONS
program_error = 1
OTHERS = 2.
FORM HANDLE_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
IF RS_SELFIELD-FIELDNAME = 'MATNR'.
CLEAR : wa_purchase.
READ TABLE lt_purchase INTO wa_purchase INDEX RS_SELFIELD-TABINDEX.
if wa_purchase-matnr is NOT INITIAL.
SET PARAMETER ID: 'MAT' FIELD wa_purchase-matnr.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
endif.
endform
Edited by: Muthu kumar on Oct 11, 2008 10:09 AM
‎2008 Oct 11 5:39 AM
HI
see below code
*SET PF-STATUS 'YSTATUS'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
is_layout = gs_layout
i_buffer_active = 'X'
it_fieldcat = ct_fieldcat[]
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_DEFAULT = 'X'
I_CALLBACK_USER_COMMAND = 'HANDLE_USER_COMMAND'
i_save = 'A'
TABLES
t_outtab = lt_purchase[].
EXCEPTIONS
program_error = 1
OTHERS = 2.
FORM HANDLE_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
IF RS_SELFIELD-FIELDNAME = 'MATNR'.
CLEAR : wa_purchase.
READ TABLE lt_purchase INTO wa_purchase INDEX RS_SELFIELD-TABINDEX.
if wa_purchase-matnr is NOT INITIAL.
SET PARAMETER ID: 'MAT' FIELD wa_purchase-matnr.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
endif.
endform
Edited by: Muthu kumar on Oct 11, 2008 10:09 AM
‎2008 Oct 11 5:47 AM
Hi,
REPORT BALVSD11.
Data declaration
TYPE-POOLS: SLIS.
TABLES: SCARR, SPFLI.
Global structure of list
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: GT_OUTTAB LIKE SIMLISTRUC OCCURS 0 WITH HEADER LINE.
DATA: G_TABNAME TYPE SLIS_TABNAME VALUE 'GT_OUTTAB'.
DATA: G_REPID LIKE SY-REPID.
DATA G_STATUS TYPE SLIS_FORMNAME VALUE 'STANDARD_02'.
DATA GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
DATA G_SAVE(1) TYPE C.
DATA G_VARIANT LIKE DISVARIANT.
Global data declaration
Initialization fieldcatalog
INITIALIZATION.
G_REPID = SY-REPID.
PERFORM FIELDCAT_INIT USING GT_FIELDCAT[].
Data selection
START-OF-SELECTION.
PERFORM SELECT_DATA TABLES GT_OUTTAB.
Display list
END-OF-SELECTION.
Set options: Save variants userspecific or general
A = U & X, U = userspecific, X = general user
G_SAVE = 'A'.
PERFORM VARIANT_INIT.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = G_STATUS
I_CALLBACK_USER_COMMAND = G_USER_COMMAND
I_SAVE = G_SAVE
IS_VARIANT = G_VARIANT
IT_FIELDCAT = GT_FIELDCAT[]
TABLES
T_OUTTAB = GT_OUTTAB.
*----
FORM PF_STATUS_SET
*----
FORM STANDARD_02 USING EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STANDA02' EXCLUDING EXTAB.
ENDFORM.
*----
FORMS
*----
Initialization fieldcatalog
FORM FIELDCAT_INIT
USING RT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-FIELDNAME = 'CARRID'.
LS_FIELDCAT-KEY = 'X'. "sets key field
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = G_REPID
I_INTERNAL_TABNAME = G_TABNAME
I_STRUCTURE_NAME = 'SIMLISTRUC'
I_CLIENT_NEVER_DISPLAY = 'X'
CHANGING
CT_FIELDCAT = RT_FIELDCAT.
ENDFORM. "fieldcat_init
Data selection
FORM SELECT_DATA
TABLES RT_OUTTAB LIKE GT_OUTTAB[].
SELECT DISTINCT SCARRCARRID SCARRCARRNAME
SPFLICONNID SPFLICITYFROM
SPFLIAIRPFROM SPFLICITYTO
SPFLIAIRPTO SPFLIDEPTIME
SPFLIARRTIME SPFLIDISTANCE
SPFLI~DISTID
INTO (RT_OUTTAB-CARRID, RT_OUTTAB-CARRNAME,
RT_OUTTAB-CONNID, RT_OUTTAB-CITYFROM,
RT_OUTTAB-AIRPFROM, RT_OUTTAB-CITYTO,
RT_OUTTAB-AIRPTO, RT_OUTTAB-DEPTIME,
RT_OUTTAB-ARRTIME, RT_OUTTAB-DISTANCE,
RT_OUTTAB-DISTID)
FROM SCARR INNER JOIN SPFLI
ON SCARRCARRID = SPFLICARRID
WHERE SCARR~CARRID BETWEEN 'AA' AND 'LH'.
APPEND RT_OUTTAB.
ENDSELECT.
ENDFORM.
----
FORM USER_COMMAND *
----
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
DATA: L_TA TYPE SY-TCODE VALUE 'SLIS_DUMMY'.
*
CASE R_UCOMM.
WHEN 'WAHL'. "menubutton
READ TABLE GT_OUTTAB INDEX RS_SELFIELD-TABINDEX. "cursorposit.
IF SY-SUBRC = 0.
SUBMIT SLIS_DUMMY WITH P_CARRID EQ GT_OUTTAB-CARRID
WITH P_CONNID EQ GT_OUTTAB-CONNID.
ENDIF.
CLEAR R_UCOMM.
WHEN '&IC1'. "doubleclick
READ TABLE GT_OUTTAB INTO GT_OUTTAB INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SUBMIT SLIS_DUMMY WITH P_CARRID EQ GT_OUTTAB-CARRID
WITH P_CONNID EQ GT_OUTTAB-CONNID.
ENDIF.
CLEAR R_UCOMM.
ENDCASE.
ENDFORM.
&----
*& Form VARIANT_INIT
&----
FORM VARIANT_INIT.
CLEAR G_VARIANT.
G_VARIANT-REPORT = G_REPID.
ENDFORM. " VARIANT_INIT
Hope it helps you.
Regards
Manjari.
‎2008 Oct 11 6:29 AM
Hi Radhika,
The following code is used after your first alv display for doing interactive job.....
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
*----- When the User Clicks on on the Order
WHEN '&IC1'.
IF rs_selfield-fieldname EQ 'BANFN'.
READ TABLE it_final INTO wa_final INDEX rs_selfield-tabindex.
SET PARAMETER ID 'BAN' FIELD wa_final-banfn.
CALL TRANSACTION 'ME53N' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
Here the moment the user double clicks on the internal table field 'BANFN' ,the tabindex is captured and using
SET PARAMETER ID 'BAN' FIELD wa_final-banfn
the internal table vaule is passed to the particular transaction i.e. me53n.
also one can start new set of selections based on this value and display an internal table........
Regards
Debarshi
‎2008 Nov 18 9:15 AM
DATA ALV_PROG_NAME LIKE SY-REPID.
ALV_PROG_NAME = SY-REPID.
DATA : W_CALLBACK_SUBROUTINE TYPE SLIS_FORMNAME,
W_CALLBACK_PROGRAM LIKE SY-REPID.
*******************************************************************************************
W_CALLBACK_PROGRAM = SY-REPID.
W_CALLBACK_SUBROUTINE = 'USER_COMMAND'.
WA_FIELDCAT-TABNAME = 'IT_DATA'.
WA_FIELDCAT-FIELDNAME = 'MONTHYEAR'.
WA_FIELDCAT-SELTEXT_L = 'PERIOD'.
WA_FIELDCAT-COL_POS = A.
WA_FIELDCAT-OUTPUTLEN = 15.
WA_FIELDCAT-HOTSPOT = 'X'.
APPEND WA_FIELDCAT TO L_FIELDCAT.
CLEAR WA_FIELDCAT.
FORM USER_COMMAND USING P_UCOMM LIKE SY-UCOMM
P_SELFIELD TYPE SLIS_SELFIELD.
DATA: F_SUBRC LIKE SY-SUBRC,
S_DATA LIKE IT_DATA.
READ TABLE IT_DATA INDEX P_SELFIELD-TABINDEX INTO S_DATA.
READ TABLE IT_DATA WITH KEY BADAT_LOW = S_DATA-BADAT_LOW.
READ TABLE IT_DATA WITH KEY BADAT_HIGH = S_DATA-BADAT_HIGH .
S_DATA-WERKS_LOW = WERKS-LOW.
S_DATA-WERKS_HIGH = WERKS-HIGH.
S_DATA-EKGRP_LOW = EKGRP-LOW.
S_DATA-EKGRP_HIGH = EKGRP-HIGH.
IF SY-SUBRC = 0.
CASE P_UCOMM.
WHEN '&IC1'.
CASE P_SELFIELD-SEL_TAB_FIELD.
WHEN 'IT_DATA-MONTHYEAR'.
SET PARAMETER ID 'WRK' FIELD S_DATA-WERKS_LOW.
SET PARAMETER ID 'WRK' FIELD S_DATA-WERKS_HIGH.
CALL TRANSACTION 'ZMPAGE09A' AND SKIP FIRST SCREEN.
ENDCASE.
ENDCASE.
ENDFORM.