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

Alv interactive report

Former Member
0 Likes
623

hi gurus,

can anyone give me the example of how to create an alv interactive report.

thankyou

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
560

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

4 REPLIES 4
Read only

Former Member
0 Likes
561

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

Read only

Former Member
0 Likes
560

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.

Read only

Former Member
0 Likes
560

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

Read only

Former Member
0 Likes
560

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.