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

Simple ALV interactive list...

Former Member
0 Likes
3,301

<b><b>hi i am a fresh Learner in ABAP and i am doing a small program in simple ALV interactive report in SD module that gives me::

1. SALES and then the invoice details of one particular value i click ,when delivery document number is given.

2. Deivery and invoice details of one particular value i click ,when sales order number is given.

3. Sales and delivery details of one particular value i click , when invoice order details are given.

so i need a clear code for the above. i can input any one of the three inputs to get the correct solution.. please give me a valid solution and not useless ones..

.. please help me with the same at the earliest !!!!!!!!!!!</b></b>

Message was edited by: ashokkumar ramkumar, please urgent replies...........

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
2,541

hi ashok,

if ur problem is solved.please close the threads by awarding points....

24 REPLIES 24
Read only

Former Member
0 Likes
2,541

See this code sample

http://www.sap-img.com/abap/an-interactive-alv-report.htm

Reward points if u find helpful.

Read only

Former Member
0 Likes
2,541

Hi,

Welcome to SDN!!!!!!!!!!

Look at the sample code.......

******FM for ALV Display***********

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = i_repid

i_callback_user_command = 'USER_COMMAND_PERNR'"<<<----

it_fieldcat = header

is_layout = gt_layout

i_callback_top_of_page = 'TOP-OF-PAGE1'

i_grid_title = text-t06

it_sort = gt_sort[]

i_default = 'X'

i_save = 'U'

is_variant = gt_variant

it_events = gt_events

TABLES

t_outtab = ITAB.

clear itab.

----


  • FORM USER_COMMAND_PERNR

----


FORM USER_COMMAND_PERNR USING u_ucomm LIKE sy-ucomm

us_selfield TYPE slis_selfield."#EC CALLED

CASE u_ucomm.

when '&IC1'.

if us_selfield-fieldname = 'PERNR'.

  • read table ITAB index us_selfield-tabindex.

  • set parameter id 'PER' field ITAB-PERNR.

set parameter id 'PER' field us_selfield-value.

call transaction 'ZDMR03' and skip first screen.

endif.

*******************

Here in my example i am calling one Tranx for further display.

You can code for next list display also here based on the field you clicked in Basic list.

*******************

ENDCASE.

ENDFORM. " USER_COMMAND_PERNR

For reference goto this link will help you a lot........

http://www.geocities.com/mpioud/Abap_programs.html

Thanks.

If this helps you reward with points.

Message was edited by: KDeepak

Read only

Former Member
0 Likes
2,541
Read only

Former Member
0 Likes
2,541
  • To allow the user to select a line from the list, define and write a processing block for the AT LINE-SELECTION event in your program:

  • HIDE statement for storing the user's selected fields

  • To allow the user to select an action by pressing a function key,

Syntax

AT PF<nn>.

<statements>.

LIST INDEX-SY-LSIND-it is the counter for the list.

for sample program check the below site..

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

Read only

Former Member
0 Likes
2,541

hi ashok,

please be clear with ur question. do u need simple interactive list using alv to display or u need a simple interactive list.

for a simple interactive list refer to the program given below. remember if u need simple alv interactive list please ignore this post.

TABLES : vbak,

vbap,

vbep.

DATA : BEGIN OF i_vbak OCCURS 0,

vbeln LIKE vbak-vbeln,

erdat LIKE vbak-erdat,

vkorg LIKE vbak-vkorg,

vtweg LIKE vbak-vtweg,

spart LIKE vbak-spart,

END OF i_vbak.

DATA : BEGIN OF i_vbap OCCURS 0,

vbeln LIKE vbap-vbeln,

posnr LIKE vbap-posnr,

matnr LIKE vbap-matnr,

zmeng LIKE vbap-zmeng,

END OF i_vbap.

DATA : BEGIN OF i_vbep OCCURS 0,

vbeln LIKE vbep-vbeln,

posnr LIKE vbep-posnr,

etenr LIKE vbep-etenr,

wmeng LIKE vbep-wmeng,

bddat LIKE vbep-bddat,

banfn LIKE vbep-banfn,

END OF i_vbep.

SELECT-OPTIONS : s_vbeln FOR vbak-vbeln.

  • Start of Selection

START-OF-SELECTION.

SELECT * INTO CORRESPONDING FIELDS OF TABLE i_vbak

FROM vbak

WHERE vbeln IN s_vbeln.

IF sy-subrc NE 0.

MESSAGE e000(zjm).

ENDIF.

*End-of-Selection

END-OF-SELECTION.

SET PF-STATUS 'ZJMD'.

LOOP AT i_vbak.

FORMAT COLOR 4 INTENSIFIED ON.

WRITE : /5 i_vbak-vbeln, 16 sy-vline, 17 i_vbak-erdat,

28 sy-vline, 29 i_vbak-vkorg , 34 sy-vline, 35 i_vbak-vtweg,

40 sy-vline, 41 i_vbak-spart, 44 sy-vline.

FORMAT RESET.

HIDE i_vbak-vbeln.

ENDLOOP.

AT LINE-SELECTION.

IF sy-lsind EQ 1.

SELECT * INTO CORRESPONDING FIELDS OF TABLE i_vbap

FROM vbap

WHERE vbeln = i_vbak-vbeln.

LOOP AT i_vbap.

FORMAT COLOR 1 INTENSIFIED ON.

WRITE : /5 i_vbap-vbeln, 16 sy-vline, 17 i_vbap-posnr,

24 sy-vline, 24 i_vbap-matnr, 43 sy-vline, 44 i_vbap-zmeng.

FORMAT RESET.

HIDE i_vbap-vbeln.

ENDLOOP.

ENDIF.

IF sy-lsind EQ 2.

SELECT * INTO CORRESPONDING FIELDS OF TABLE i_vbep

FROM vbep

WHERE vbeln = i_vbap-vbeln.

LOOP AT i_vbep.

WRITE : /5 i_vbep-vbeln.

ENDLOOP.

ENDIF.

TOP-OF-PAGE.

FORMAT COLOR 1 INTENSIFIED ON.

WRITE : /5 'Items', 16 sy-vline, 17 'Date',

28 sy-vline, 29 'Org', 34 sy-vline, 35 'Dist',

40 sy-vline, 41 'Div', 44 sy-vline.

FORMAT RESET.

Read only

0 Likes
2,541

joe,

thanks for ur good reply.my point is that,i display some fields from VBAK in the first ALV sreen ,on clicking this screen,i need to display some fields on the scrren from the table lips.in such case i need ur help........ if possible with a sample program !!!!!11

Read only

0 Likes
2,541

Hi,

Check this code..

REPORT  ZTEST_ALV123                            .

TYPE-POOLS:SLIS.
DATA :   IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
          IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV.


DATA: BEGIN OF ITAB OCCURS 0,
       VBELN LIKE VBAK-VBELN,
       POSNR LIKE VBAP-POSNR,
       END OF ITAB.

DATA: BEGIN OF ITAB1 OCCURS 0,
       VBELN LIKE LIKP-VBELN,
       POSNR LIKE LIPS-POSNR,
       VGBEL LIKE LIPS-VGBEL,
       VGPOS LIKE LIPS-VGPOS,
       END OF ITAB1.

DATA: IT_LIPS LIKE ITAB1 OCCURS 0 WITH HEADER LINE.
SELECT  VBELN
        POSNR
        FROM VBAP
        INTO TABLE ITAB.

IF SY-SUBRC = 0.
  SORT ITAB BY VBELN .
  SELECT VBELN
   POSNR
   VGBEL
   VGPOS
   INTO TABLE ITAB1
   FROM LIPS
   FOR ALL ENTRIES IN ITAB
   WHERE VGBEL = ITAB-VBELN
     AND    VGPOS = ITAB-POSNR.
ENDIF.
DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS  = 1.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS  = 1.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.


CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    I_CALLBACK_PROGRAM       = SY-REPID
    I_CALLBACK_PF_STATUS_SET = 'PFSTATUS'
    I_CALLBACK_USER_COMMAND  = 'HANDLE_USER_COMMAND'
    IT_FIELDCAT              = IT_FIELDCAT
  TABLES
    T_OUTTAB                 = ITAB
  EXCEPTIONS
    PROGRAM_ERROR            = 1
    OTHERS                   = 2.

IF SY-SUBRC  = 0.

ENDIF.

*&---------------------------------------------------------------------*
*&      Form  POPUP
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_EXTAB    text
*----------------------------------------------------------------------*
FORM POPUP USING P_EXTAB TYPE SLIS_T_EXTAB.
"here double click on PFSTATUS and create the status, "activate, before that set PICK for choose(F2).
*- Pf status
  SET PF-STATUS 'PFSTATUS'.

ENDFORM.                 " POPUP

*&---------------------------------------------------------------------*
*&      Form  HANDLE_USER_COMMAND
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->R_UCOMM      text
*      -->RS_SELFIELD  text
*----------------------------------------------------------------------*
FORM HANDLE_USER_COMMAND USING R_UCOMM     LIKE SY-UCOMM
                               RS_SELFIELD TYPE SLIS_SELFIELD.

  CASE R_UCOMM.

    WHEN '&IC1'.
      IF RS_SELFIELD-FIELDNAME = 'VBELN'.
        READ TABLE ITAB INDEX RS_SELFIELD-TABINDEX.
        LOOP AT ITAB1 WHERE VGBEL = ITAB-VBELN
                          AND VGPOS = ITAB-POSNR.

          MOVE-CORRESPONDING ITAB1 TO IT_LIPS.
          APPEND IT_LIPS.
        ENDLOOP.

        PERFORM INTERACTIVE_REPORT.
      ENDIF.

  ENDCASE.

ENDFORM.                    "HANDLE_USER_COMMAND
*&---------------------------------------------------------------------*
*&      Form  interactive_report
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM INTERACTIVE_REPORT .
  X_FIELDCAT-FIELDNAME = 'VBELN'.
  X_FIELDCAT-SELTEXT_L = 'VBELN'.
  X_FIELDCAT-TABNAME = 'IT_LIPS'.
  X_FIELDCAT-COL_POS  = 1.
  APPEND X_FIELDCAT TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT.

  X_FIELDCAT-FIELDNAME = 'POSNR'.
  X_FIELDCAT-SELTEXT_L = 'ITEM'.
  X_FIELDCAT-TABNAME = 'IT_LIPS'.
  X_FIELDCAT-COL_POS  = 2.
  APPEND X_FIELDCAT TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT.
  X_FIELDCAT-FIELDNAME = 'VGBEL'.
  X_FIELDCAT-SELTEXT_M = 'SO #'.
  X_FIELDCAT-TABNAME = 'IT_LIPS'.
  X_FIELDCAT-COL_POS  = 3.
  APPEND X_FIELDCAT TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT.

  X_FIELDCAT-FIELDNAME = 'VGPOS'.
  X_FIELDCAT-SELTEXT_M = 'SO ITEM'.
  X_FIELDCAT-TABNAME = 'IT_LIPS'.
  X_FIELDCAT-COL_POS  = 4.
  APPEND X_FIELDCAT TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM = SY-REPID
      IT_FIELDCAT        = IT_FIELDCAT1
    TABLES
      T_OUTTAB           = IT_LIPS
    EXCEPTIONS
      PROGRAM_ERROR      = 1
      OTHERS             = 2.

  IF SY-SUBRC  = 0.

  ENDIF.
ENDFORM.                    " interactive_report

Regards

vijay

Read only

Former Member
0 Likes
2,541

Hi,

Check this sample code..

REPORT  ZTEST_ALV123                            .

TYPE-POOLS:SLIS.
DATA :   IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
          IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV.

DATA: BEGIN OF ITAB OCCURS 0,
       VBELN LIKE VBAK-VBELN,
       END OF ITAB.

DATA: BEGIN OF ITAB1 OCCURS 0,
       VBELN LIKE VBAK-VBELN,
       POSNR LIKE VBAP-POSNR,
       END OF ITAB1.


SELECT  VBELN
        FROM VBAK
        UP TO 100 ROWS
        INTO TABLE ITAB.
IF SY-SUBRC = 0.
sort itab by vbeln .
  SELECT VBELN
         POSNR
         INTO TABLE ITAB1
         FROM VBAP
         FOR ALL ENTRIES IN ITAB
         WHERE VBELN = ITAB-VBELN.
ENDIF.
DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS  = 1.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.



CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    I_CALLBACK_PROGRAM       = SY-REPID
    I_CALLBACK_PF_STATUS_SET = 'POPUP'
    I_CALLBACK_USER_COMMAND  = 'HANDLE_USER_COMMAND'
    IT_FIELDCAT              = IT_FIELDCAT
  TABLES
    T_OUTTAB                 = ITAB
  EXCEPTIONS
    PROGRAM_ERROR            = 1
    OTHERS                   = 2.

IF SY-SUBRC  = 0.

ENDIF.

FORM POPUP USING P_EXTAB TYPE SLIS_T_EXTAB.

*- Pf status
  SET PF-STATUS 'POPUP'.

ENDFORM.                 " POPUP


FORM HANDLE_USER_COMMAND USING R_UCOMM     LIKE SY-UCOMM
                               RS_SELFIELD TYPE SLIS_SELFIELD.

  CASE R_UCOMM.

    WHEN '&IC1'.

      PERFORM INTERACTIVE_REPORT.

  ENDCASE.

ENDFORM.                    "HANDLE_USER_COMMAND

FORM INTERACTIVE_REPORT .
  X_FIELDCAT-FIELDNAME = 'VBELN'.
  X_FIELDCAT-TABNAME = 'ITAB1'.
  X_FIELDCAT-COL_POS  = 1.
  APPEND X_FIELDCAT TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT.

  X_FIELDCAT-FIELDNAME = 'POSNR'.
  X_FIELDCAT-TABNAME = 'ITAB1'.
  X_FIELDCAT-COL_POS  = 2.
  APPEND X_FIELDCAT TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM       = SY-REPID
      IT_FIELDCAT              = IT_FIELDCAT1
    TABLES
      T_OUTTAB                 = ITAB1
    EXCEPTIONS
      PROGRAM_ERROR            = 1
      OTHERS                   = 2.

  IF SY-SUBRC  = 0.

  ENDIF.
ENDFORM.                    " interactive_report

Regards

vijay

Read only

0 Likes
2,541

hi vijay,

just check out the exact requirement and try to gimma a solution........

Read only

Former Member
0 Likes
2,541

hi ashok

hope this program will help u

TYPE-POOLS SLIS.

DATA PROG TYPE SY-REPID .

PROG = SY-REPID.

DATA : BEGIN OF ITAB1 OCCURS 0,

CARRID LIKE SPFLI-CARRID,

CONNID LIKE SPFLI-CONNID,

AIRPTO LIKE SPFLI-AIRPTO,

END OF ITAB1 .

DATA WA1 LIKE LINE OF ITAB1 .

DATA OK_CODE TYPE SY-UCOMM.

DATA : BEGIN OF ITAB2 OCCURS 0,

CARRID LIKE SFLIGHT-CARRID,

CONNID LIKE SFLIGHT-CONNID,

PRICE LIKE SFLIGHT-PRICE ,

END OF ITAB2 .

DATA IT_FCAT1 TYPE SLIS_T_FIELDCAT_ALV .

DATA IT_FCAT2 TYPE SLIS_T_FIELDCAT_ALV .

SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TABLE ITAB1 .

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = PROG

I_INTERNAL_TABNAME = 'ITAB1'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = PROG

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = IT_FCAT1

.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = PROG

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'YALV9FORM'

  • I_STRUCTURE_NAME =

  • IS_LAYOUT =

IT_FIELDCAT = IT_FCAT1

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_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

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = ITAB1

  • 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.

FORM YALV9FORM USING R_UCOMM LIKE SY-UCOMM R_FIELD TYPE

SLIS_SELFIELD.

READ TABLE ITAB1 INDEX R_FIELD-TABINDEX .

SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS OF TABLE ITAB2 WHERE

CARRID = ITAB1-CARRID .

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = PROG

I_INTERNAL_TABNAME = 'ITAB2'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = PROG

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = IT_FCAT2

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.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = PROG

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_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_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = IT_FCAT2

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_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

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = ITAB2

  • 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.

Read only

Former Member
0 Likes
2,541

hi,

This report takes bukrs(company code) & gjahr(date) as input & then gives you the list in an alv.Here Field catalog is also used to select only those fields which are really wanted.

regards

REPORT zalvgridcontrol1 .

PARAMETERS: pa_bukrs LIKE bsis-bukrs.

PARAMETERS: pa_gjahr LIKE bsis-gjahr.

DATA gr_alvgrid TYPE REF TO cl_gui_alv_grid.

DATA gc_custom_control_name TYPE scrfname VALUE 'CC_ALV'.

DATA gr_ccontainer TYPE REF TO cl_gui_custom_container.

DATA gt_fieldcat TYPE lvc_t_fcat.

DATA pt_sort TYPE lvc_t_sort.

TABLES: bsis.

*----


INTERNAL TABLE

DATA :BEGIN OF it_bsis OCCURS 0,

mandt TYPE bsis-mandt,

hkont TYPE bsis-hkont,

augdt TYPE bsis-augdt,

augbl TYPE bsis-augbl,

zuonr TYPE bsis-zuonr,

belnr TYPE bsis-belnr,

buzei TYPE bsis-buzei,

gjahr TYPE bsis-gjahr,

bukrs TYPE bsis-bukrs,

budat TYPE bsis-budat,

blart TYPE bsis-blart,

dmbtr TYPE bsis-dmbtr,

ztotal TYPE f,

END OF it_bsis.

DATA: wa_bsis LIKE it_bsis .

SELECT mandt augdt augbl zuonr belnr buzei hkont budat blart dmbtr gjahr

bukrs FROM bsis

INTO CORRESPONDING FIELDS OF TABLE it_bsis

WHERE bukrs = pa_bukrs

AND gjahr = pa_gjahr.

SET SCREEN 100.

&----


*& Module DISPLAY_ALV OUTPUT

&----


  • text

----


MODULE zdisplay_alv OUTPUT.

PERFORM display_alv.

ENDMODULE. " DISPLAY_ALV OUTPUT

&----


*& Form DISPLAY_ALV

&----


  • This form displays alvgrid

----


  • --> p1 text

  • <-- p2 text

----


FORM display_alv .

IF gr_alvgrid IS INITIAL.

CREATE OBJECT gr_ccontainer

EXPORTING

container_name = 'CC_ALV' " GC_CUSTOM_CONTROL_NAME

EXCEPTIONS cntl_error = 1

cntl_system_error = 2.

CREATE OBJECT gr_alvgrid

EXPORTING

i_parent = gr_ccontainer.

PERFORM prepare_field_catalog CHANGING gt_fieldcat.

CALL METHOD gr_alvgrid->set_table_for_first_display

CHANGING

it_outtab = it_bsis[]

it_fieldcatalog = gt_fieldcat.

CALL METHOD gr_alvgrid->refresh_table_display.

ENDIF.

ENDFORM. " DISPLAY_ALV

&----


*& Form PREPARE_FIELD_CATALOG

&----


  • Field catalog is prepared to diaplay data in alv.

----


  • <--P_GT_FIELDCAT text

----


FORM prepare_field_catalog CHANGING p_gt_fieldcat TYPE lvc_t_fcat.

DATA ls_fcat TYPE lvc_s_fcat.

ls_fcat-fieldname = 'HKONT'.

ls_fcat-inttype = 'C'.

ls_fcat-outputlen = '4'.

ls_fcat-coltext = 'ITEMCODE'.

ls_fcat-seltext = 'ITEMCODE'.

APPEND ls_fcat TO p_gt_fieldcat.

CLEAR ls_fcat.

ls_fcat-fieldname = 'BUDAT'.

ls_fcat-inttype = 'D'.

ls_fcat-outputlen ='8'.

ls_fcat-coltext = 'DATE'.

ls_fcat-seltext = 'DATE'.

APPEND ls_fcat TO p_gt_fieldcat.

CLEAR ls_fcat.

ls_fcat-fieldname = 'BLART'.

ls_fcat-inttype = 'C'.

ls_fcat-outputlen = '10'.

ls_fcat-coltext = 'DOC TYPE'.

ls_fcat-seltext = 'DOC TYPE'.

APPEND ls_fcat TO p_gt_fieldcat.

CLEAR ls_fcat.

ls_fcat-fieldname = 'DMBTR'.

ls_fcat-inttype = 'P'.

ls_fcat-outputlen = '10'.

ls_fcat-coltext = 'AMOUNT'.

ls_fcat-seltext = 'AMOUNT'.

ls_fcat-do_sum = 'X'.

APPEND ls_fcat TO p_gt_fieldcat.

ENDFORM. " PREPARE_FIELD_CATALOG

&----


*& Module status OUTPUT

&----


  • Form for setting status.

----


MODULE zstatus OUTPUT.

SET PF-STATUS 'ALVSTATUS'.

ENDMODULE. " status OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • form for standard tool bar.

----


MODULE zuser_command_0100 INPUT.

CASE sy-ucomm.

WHEN 'BACK'.

LEAVE PROGRAM.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

Read only

jayanthi_jayaraman
Active Contributor
0 Likes
2,541

Hi,

Check this link for the sample code and kindly reward points by clicking the star on the left of reply,if it helps.The sample code basically is for displaying 3 lists as you asked.

http://www.geocities.com/mpioud/Z_DEMO_3_ALV_LIST.html

Read only

Former Member
0 Likes
2,542

hi ashok,

if ur problem is solved.please close the threads by awarding points....

Read only

Former Member
0 Likes
2,541

Hi ashok

for this you have to innner join LIKP(delivery docuement), LIPS, VBAP & VBAK(sales document) for getting the sales details.

then for invoice youhave to inner join LIKP(delivery document),LIPS,VBRP & VBRK(invoce).

regards

kishore

Read only

0 Likes
2,541

<b>kishore,

thankx for ur solution.i have that idea already but error heads up while joining the tables. why could u check out a code for it and send me ?</b>

Read only

0 Likes
2,541

hi ASHOK

THIS ONE WORKS FINE.

REPORT ZKISHDRILL1.

TABLES: VBAK,VBAP,LIKP,LIPS.

DATA: BEGIN OF I_VBAK_VBAP OCCURS 0,

VBELN LIKE VBAK-VBELN,

ERNAM LIKE VBAK-ERNAM,

ERDAT LIKE VBAK-ERDAT,

VKORG LIKE VBAK-VKORG,

VTWEG LIKE VBAK-VTWEG,

SPART LIKE VBAK-SPART,

POSNR LIKE VBAP-POSNR,

MATNR LIKE VBAP-MATNR,

KWMENG LIKE VBAP-KWMENG,

END OF I_VBAK_VBAP.

DATA: BEGIN OF I_LIKP_LIPS OCCURS 0,

VBELN LIKE LIKP-VBELN,

LFART LIKE LIKP-LFART,

LFDAT LIKE LIKP-LFDAT,

POSNR LIKE LIPS-POSNR,

LFIMG LIKE LIPS-LFIMG,

VGBEL LIKE LIPS-VGBEL,

VGPOS LIKE LIPS-VGPOS,

END OF I_LIKP_LIPS.

DATA: BEGIN OF I_VBRK_VBRP OCCURS 0,

VBELN LIKE VBRK-VBELN,

BELNR LIKE VBRK-BELNR,

POSNR LIKE VBRP-POSNR,

NETWR LIKE VBRP-NETWR,

END OF I_VBRK_VBRP.

SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN MATCHCODE OBJECT VMVA OBLIGATORY.

AT SELECTION-SCREEN.

SELECT SINGLE * FROM VBAK WHERE VBELN IN S_VBELN.

IF SY-SUBRC <> 0.

MESSAGE E000(ZER).

ENDIF.

START-OF-SELECTION.

SELECT VBAKVBELN VBAKERNAM VBAKERDAT VBAKVKORG VBAK~VTWEG

VBAKSPART VBAPPOSNR VBAPMATNR VBAPKWMENG INTO TABLE I_VBAK_VBAP

FROM VBAK INNER JOIN VBAP ON VBAKVBELN = VBAPVBELN WHERE VBAK~VBELN

IN S_VBELN.

************************************************************************

AT LINE-SELECTION.

******************************LEVEL1

IF SY-LSIND EQ 1.

CLEAR I_LIKP_LIPS.

REFRESH I_LIKP_LIPS.

SELECT LIKPVBELN LIKPLFART LIKPLFDAT LIPSPOSNR LIPSLFIMG LIPSVGBEL

LIPS~VGPOS INTO TABLE I_LIKP_LIPS FROM LIKP INNER JOIN LIPS ON

LIKPVBELN = LIPSVBELN WHERE

LIPS~VGBEL = I_VBAK_VBAP-VBELN AND

LIPS~VGPOS = I_VBAK_VBAP-POSNR.

LOOP AT I_LIKP_LIPS.

WRITE: / I_LIKP_LIPS-VBELN, I_LIKP_LIPS-POSNR.

HIDE I_LIKP_LIPS.

ENDLOOP.

ENDIF.

******************************LEVEL 2

IF SY-LSIND EQ 2.

SELECT VBRKVBELN VBRKBELNR VBRPPOSNR VBRPNETWR INTO TABLE

I_VBRK_VBRP FROM VBRK INNER JOIN VBRP ON VBRKVBELN = VBRPVBELN WHERE

VBRP~VGBEL = I_LIKP_LIPS-VBELN AND

VBRP~VGPOS = I_LIKP_LIPS-POSNR.

LOOP AT I_VBRK_VBRP.

WRITE: / I_VBRK_VBRP-VBELN, I_VBRK_VBRP-NETWR.

ENDLOOP.

ENDIF.

IF SY-LSIND GT 2.

MESSAGE W002(ZER).

ENDIF.

************************************************************************

************************************************************************

END-OF-SELECTION.

LOOP AT I_VBAK_VBAP.

WRITE: / I_VBAK_VBAP-VBELN, I_VBAK_VBAP-POSNR.

HIDE I_VBAK_VBAP.

ENDLOOP.

************************************************************************

TOP-OF-PAGE.

SKIP.

ULINE 5(76).

FORMAT COLOR 1 INTENSIFIED ON.

WRITE:/5 SY-VLINE,6 'SALES NUM', 20 SY-VLINE, 21 'CREATOR', 35

SY-VLINE, 36 'CRET DATE', 48 SY-VLINE, 49 'SALES ORG',

60 SY-VLINE, 61 'SALES WG', 71 SY-VLINE, 72 'SAL DIV',

80 SY-VLINE.

ULINE /5(76).

FORMAT RESET.

TOP-OF-PAGE DURING LINE-SELECTION.

****************************************LEVEL 1

IF SY-LSIND EQ 1.

ENDIF.

****************************************LEVEL 2

IF SY-LSIND EQ 2.

ENDIF.

REGARDS

KISHORE

REWARD IF HELPFUL

Read only

0 Likes
2,541

kishore,

i needed a ALV report and not interactive report..........

Read only

0 Likes
2,541

An Interactive ALV Report

&----


*& Report ZZ_22038_22098_002 *

*& *

&----


*& This is an Interactive ALV report, where on line slection we can see

*& the secondry list

*&

*& *

&----


REPORT ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650

MESSAGE-ID ZZ_9838 .

TYPE-POOLS: SLIS.

*type declaration for values from ekko

TYPES: BEGIN OF I_EKKO,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

BUKRS LIKE EKKO-BUKRS,

BSART LIKE EKKO-BSART,

LIFNR LIKE EKKO-LIFNR,

END OF I_EKKO.

DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,

WA_EKKO TYPE I_EKKO.

*type declaration for values from ekpo

TYPES: BEGIN OF I_EKPO,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

MEINS LIKE EKPO-MEINS,

NETPR LIKE EKPO-NETPR,

END OF I_EKPO.

DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,

WA_EKPO TYPE I_EKPO .

*variable for Report ID

DATA: V_REPID LIKE SY-REPID .

*declaration for fieldcatalog

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

  • declaration for events table where user comand or set PF status will

  • be defined

DATA: V_EVENTS TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT.

  • declartion for layout

DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

  • declaration for variant(type of display we want)

DATA: I_VARIANT TYPE DISVARIANT,

I_VARIANT1 TYPE DISVARIANT,

I_SAVE(1) TYPE C.

*PARAMETERS : p_var TYPE disvariant-variant.

*Title displayed when the alv list is displayed

DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.

DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.

INITIALIZATION.

V_REPID = SY-REPID.

PERFORM BUILD_FIELDCATLOG.

PERFORM EVENT_CALL.

PERFORM POPULATE_EVENT.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_REPORT.

&----


*& Form BUILD_FIELDCATLOG

&----


  • Fieldcatalog has all the field details from ekko

----


FORM BUILD_FIELDCATLOG.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'AEDAT'.

WA_FIELDCAT-SELTEXT_M = 'DATE.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'LIFNR'.

WA_FIELDCAT-NO_OUT = 'X'.

WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG

&----


*& Form EVENT_CALL

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL.

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

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 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 EQ 0.

WA_EVENT-FORM = 'USER_COMMAND'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-NAME.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form data_retrieval

&----


  • retreiving values from the database table ekko

----


FORM DATA_RETRIEVAL.

SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.

ENDFORM. "data_retrieval

&----


*& Form bUild_listheader

&----


  • text

----


  • -->I_LISTHEADEtext

----


FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA HLINE TYPE SLIS_LISTHEADER.

HLINE-INFO = 'this is my first alv pgm'.

HLINE-TYP = 'H'.

ENDFORM. "build_listheader

&----


*& Form display_alv_report

&----


  • text

----


FORM DISPLAY_ALV_REPORT.

V_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

I_GRID_TITLE = I_TITLE_EKKO

  • I_GRID_SETTINGS =

  • IS_LAYOUT = ALV_LAYOUT

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • i_default = 'ZLAY1'

I_SAVE = 'A'

  • is_variant = i_variant

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKKO

  • 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_report

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.

PERFORM BUILD_FIELDCATLOG_EKPO.

PERFORM EVENT_CALL_EKPO.

PERFORM POPULATE_EVENT_EKPO.

PERFORM DATA_RETRIEVAL_EKPO.

PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_EKPO.

ENDCASE.

ENDFORM. "user_command

&----


*& Form BUILD_FIELDCATLOG_EKPO

&----


  • text

----


FORM BUILD_FIELDCATLOG_EKPO.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELP'.

WA_FIELDCAT-SELTEXT_M = 'LINE NO'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MENGE'.

WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MEINS'.

WA_FIELDCAT-SELTEXT_M = 'UOM'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'NETPR'.

WA_FIELDCAT-SELTEXT_M = 'PRICE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG_EKPO

&----


*& Form event_call_ekpo

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL_EKPO.

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_ekpo

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT_EKPO.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM F_TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


*retreiving values from the database table ekko

FORM DATA_RETRIEVAL_EKPO.

SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.

ENDFORM.

FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA: HLINE1 TYPE SLIS_LISTHEADER.

HLINE1-TYP = 'H'.

HLINE1-INFO = 'CHECKING PGM'.

ENDFORM.

FORM DISPLAY_ALV_EKPO.

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 = ' '

  • I_CALLBACK_USER_COMMAND = 'F_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_EKPO

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT =

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKPO

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.

Read only

0 Likes
2,541

Hi ,

check this code..

first list it will display Sales Order details, if you click on Sales Order it will display corresponding Delivery order details...

REPORT  ZTEST_ALV123                            .

TYPE-POOLS:SLIS.
DATA :   IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
          IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV.


DATA: BEGIN OF ITAB OCCURS 0,
       VBELN LIKE VBAK-VBELN,
       POSNR LIKE VBAP-POSNR,
       END OF ITAB.

DATA: BEGIN OF ITAB1 OCCURS 0,
       VBELN LIKE LIKP-VBELN,
       POSNR LIKE LIPS-POSNR,
       VGBEL LIKE LIPS-VGBEL,
       VGPOS LIKE LIPS-VGPOS,
       END OF ITAB1.

DATA: IT_LIPS LIKE ITAB1 OCCURS 0 WITH HEADER LINE.
SELECT  VBELN
        POSNR
        UP TO 100 ROWS
        FROM VBAP
        INTO TABLE ITAB.

IF SY-SUBRC = 0.
  SORT ITAB BY VBELN .
  SELECT VBELN
   POSNR
   VGBEL
   VGPOS
   INTO TABLE ITAB1
   FROM LIPS
   FOR ALL ENTRIES IN ITAB
   WHERE VGBEL = ITAB-VBELN
     AND    VGPOS = ITAB-POSNR.
ENDIF.
DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS  = 1.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS  = 1.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.


CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    I_CALLBACK_PROGRAM       = SY-REPID
    I_CALLBACK_PF_STATUS_SET = 'PFSTATUS'
    I_CALLBACK_USER_COMMAND  = 'HANDLE_USER_COMMAND'
    IT_FIELDCAT              = IT_FIELDCAT
  TABLES
    T_OUTTAB                 = ITAB
  EXCEPTIONS
    PROGRAM_ERROR            = 1
    OTHERS                   = 2.

IF SY-SUBRC  = 0.

ENDIF.

*&---------------------------------------------------------------------*
*&      Form  POPUP
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_EXTAB    text
*----------------------------------------------------------------------*
FORM POPUP USING P_EXTAB TYPE SLIS_T_EXTAB.
"here double click on PFSTATUS and create the status, "activate, before that set PICK for choose(F2).
*- Pf status
  SET PF-STATUS 'PFSTATUS'.

ENDFORM.                 " POPUP

*&---------------------------------------------------------------------*
*&      Form  HANDLE_USER_COMMAND
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->R_UCOMM      text
*      -->RS_SELFIELD  text
*----------------------------------------------------------------------*
FORM HANDLE_USER_COMMAND USING R_UCOMM     LIKE SY-UCOMM
                               RS_SELFIELD TYPE SLIS_SELFIELD.

  CASE R_UCOMM.

    WHEN '&IC1'.
      IF RS_SELFIELD-FIELDNAME = 'VBELN'.
        READ TABLE ITAB INDEX RS_SELFIELD-TABINDEX.
        LOOP AT ITAB1 WHERE VGBEL = ITAB-VBELN
                          AND VGPOS = ITAB-POSNR.

          MOVE-CORRESPONDING ITAB1 TO IT_LIPS.
          APPEND IT_LIPS.
        ENDLOOP.

        PERFORM INTERACTIVE_REPORT.
      ENDIF.

  ENDCASE.

ENDFORM.                    "HANDLE_USER_COMMAND
*&---------------------------------------------------------------------*
*&      Form  interactive_report
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM INTERACTIVE_REPORT .
  X_FIELDCAT-FIELDNAME = 'VBELN'.
  X_FIELDCAT-SELTEXT_L = 'VBELN'.
  X_FIELDCAT-TABNAME = 'IT_LIPS'.
  X_FIELDCAT-COL_POS  = 1.
  APPEND X_FIELDCAT TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT.

  X_FIELDCAT-FIELDNAME = 'POSNR'.
  X_FIELDCAT-SELTEXT_L = 'ITEM'.
  X_FIELDCAT-TABNAME = 'IT_LIPS'.
  X_FIELDCAT-COL_POS  = 2.
  APPEND X_FIELDCAT TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT.
  X_FIELDCAT-FIELDNAME = 'VGBEL'.
  X_FIELDCAT-SELTEXT_M = 'SO #'.
  X_FIELDCAT-TABNAME = 'IT_LIPS'.
  X_FIELDCAT-COL_POS  = 3.
  APPEND X_FIELDCAT TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT.

  X_FIELDCAT-FIELDNAME = 'VGPOS'.
  X_FIELDCAT-SELTEXT_M = 'SO ITEM'.
  X_FIELDCAT-TABNAME = 'IT_LIPS'.
  X_FIELDCAT-COL_POS  = 4.
  APPEND X_FIELDCAT TO IT_FIELDCAT1.
  CLEAR X_FIELDCAT.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM = SY-REPID
      IT_FIELDCAT        = IT_FIELDCAT1
    TABLES
      T_OUTTAB           = IT_LIPS
    EXCEPTIONS
      PROGRAM_ERROR      = 1
      OTHERS             = 2.

  IF SY-SUBRC  = 0.

  ENDIF.
ENDFORM.                    " interactive_report

Regards

vijay

Read only

0 Likes
2,541

kishore,

with the consulting from my PL, she said that we need also to join VBFA for the purpose of solun, now go thru the question again and again and then gimme a solution to aramkuma@in.ibm.com

Read only

0 Likes
2,541

HI ashok

what details do you want in VBFA table?

you can link VBFA with all VBAP, LIPS , VBRP tables.

VBFA-VBELV = VBAP-VBELN.

VBFA-VBELN = VBRP-VBELN IF VBFA-VBTYP_N = 'M'.-->INVOICE

VBFA-VBELN = LIPS-VBELN IF VBFA-VBTYP_N = 'J'.-->DELIVERY

VBFA-VBELN = VBRP-VBELN IF VBFA-VBTYP_N = 'N'.--> INVOICE CANCELLATION.

REGARDS

KISHORE

Read only

0 Likes
2,541

<b>if u have a yahoo id, plz gimme so that i can chat u thru to get my solution, mine is ashok_gayu@yahoo.com, u r very close to my solution.....</b>

Read only

Former Member
0 Likes
2,541

hi

TRY THIS IT WILL PRINT THE SALES ORDER. WHEN YOU CLICK SALES ORDER IT WILL SHOW DELIVERY ORDER TEHN WHEN YOU CLICK DELIVERY ORDER IT WILL PRINT INVOIC..

REPORT ZKISHDRILL1.

TABLES: VBAK,VBAP,LIKP,LIPS.

DATA: BEGIN OF I_VBAK_VBAP OCCURS 0,

VBELN LIKE VBAK-VBELN,

ERNAM LIKE VBAK-ERNAM,

ERDAT LIKE VBAK-ERDAT,

VKORG LIKE VBAK-VKORG,

VTWEG LIKE VBAK-VTWEG,

SPART LIKE VBAK-SPART,

POSNR LIKE VBAP-POSNR,

MATNR LIKE VBAP-MATNR,

KWMENG LIKE VBAP-KWMENG,

END OF I_VBAK_VBAP.

DATA: BEGIN OF I_LIKP_LIPS OCCURS 0,

VBELN LIKE LIKP-VBELN,

LFART LIKE LIKP-LFART,

LFDAT LIKE LIKP-LFDAT,

POSNR LIKE LIPS~POSNR,

LFIMG LIKE LIPS-LFIMG,

VGBEL LIKE LIPS-VGBEL,

VGPOS LIKE LIPS-VGPOS,

END OF I_LIKP_LIPS.

DATA: BEGIN OF I_VBRK_VBRP OCCURS 0,

VBELN LIKE VBRK-VBELN,

BELNR LIKE VBRK-BELNR,

POSNR LIKE VBRP-POSNR,

NETWR LIKE VBRP-NETWR,

END OF I_VBRK_VBRP.

SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN MATCHCODE OBJECT VMVA OBLIGATORY.

AT SELECTION-SCREEN.

SELECT SINGLE * FROM VBAK WHERE VBELN IN S_VBELN.

IF SY-SUBRC <> 0.

MESSAGE E000(ZER).

ENDIF.

START-OF-SELECTION.

SELECT VBAKVBELN VBAKERNAM VBAKERDAT VBAKVKORG VBAK~VTWEG

VBAKSPART VBAPPOSNR VBAPMATNR VBAPKWMENG INTO TABLE I_VBAK_VBAP

FROM VBAK INNER JOIN VBAP ON VBAKVBELN = VBAPVBELN WHERE VBAK~VBELN

IN S_VBELN.

************************************************************************

AT LINE-SELECTION.

******************************LEVEL1

IF SY-LSIND EQ 1.

SELECT LIKPVBELN LIKPLFART LIKPLFDAT LIPSPOSNR LIPSLFIMG LIPSVGBEL

LIPS~VGPOS INTO TABLE I_LIKP_LIPS FROM LIKP INNER JOIN LIPS ON

LIKPVBELN = LIPSVBELN FOR ALL ENTRIES IN I_VBAK_VBAP WHERE

LIPS~VGBEL = I_VBAK_VBAP-VBELN AND

LIPS~VGPOS = I_VBAK_VBAP-POSNR.

LOOP AT I_LIKP_LIPS.

<b>

<PRINT DELIVERY DETAILS></b>

HIDE I_LIKP_LIPS.

ENDLOOP.

ENDIF.

******************************LEVEL 2

IF SY-LSIND EQ 2.

SELECT VBRKVBELN VBRKBELNR VBRPPOSNR VBRPNETWR FROM INTO TABLE I_VBRK_VBRP FROM VBRK INNER JOIN VBRP ON VBRKVBELN = VBRPVBELN FOR ALL ENTRIES IN I_LIKP_LIPS WHERE VBRP~AUBEL = I_LIKP_LIPS-VBELN AND

VBRP~AUPOS = I_LIKP_LIPS-POSNR.

LOOP AT I_VBRK_VBRP.

<b>

<PRINT INVOICE DETAILS></b>

ENDLOOP.

ENDIF.

IF SY-LSIND GT 2.

MESSAGE W002(ZER).

ENDIF.

************************************************************************

************************************************************************

END-OF-SELECTION.

LOOP AT I_VBAK_VBAP.

<b><PRINT SALES ORDER></b>

HIDE I_VBAK_VBAP.

ENDLOOP.

************************************************************************

TOP-OF-PAGE.

SKIP.

ULINE 5(76).

FORMAT COLOR 1 INTENSIFIED ON.

WRITE:/5 SY-VLINE,6 'SALES NUM', 20 SY-VLINE, 21 'CREATOR', 35

SY-VLINE, 36 'CRET DATE', 48 SY-VLINE, 49 'SALES ORG',

60 SY-VLINE, 61 'SALES WG', 71 SY-VLINE, 72 'SAL DIV',

80 SY-VLINE.

ULINE /5(76).

FORMAT RESET.

TOP-OF-PAGE DURING LINE-SELECTION.

****************************************LEVEL 1

IF SY-LSIND EQ 1.

<b><FOR DELIVERY></b>

ENDIF.

****************************************LEVEL 2

IF SY-LSIND EQ 2.

<b> <FOR INVOICE></b>

ENDIF.

REGARDS

KISHORE

Message was edited by: Harikishore Sreenivasulu

Read only

Former Member
0 Likes
2,541

Hi,

If you are thru with data retrieval and you are looking for sample ALV codes,

then go to SE80 and open package SLIS.

You will find sample programs there. Pick the one which suits your requirement and copy it.

Hope this helps..

Regards,

Shashank