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

About alv's

Former Member
0 Likes
968

1)How to display one alv from another?

2)How to display two alv in a single screen?------is this block ALV?????

Regards

1)How to display one alv from another?

2)How to display two alv in a single screen?------is this block ALV?????

Regards

6 REPLIES 6
Read only

Former Member
0 Likes
939

HI,

2) yaa we can display more than one ALV at a time using block list alv(only lists).for more than one grid you have to go for OOALV.

block list ALV sample code


TABLES:LFA1,EKKO.

SELECT-OPTIONS:LIFNR FOR LFA1-LIFNR.

DATA:BEGIN OF ITAB OCCURS 0,
     LIFNR LIKE LFA1-LIFNR,
     NAME1 LIKE LFA1-NAME1,
     LAND1 LIKE LFA1-LAND1,
     ORT01 LIKE LFA1-ORT01,
     REGIO LIKE LFA1-REGIO,
END OF ITAB.

DATA:BEGIN OF JTAB OCCURS 0,
     LIFNR LIKE EKKO-LIFNR,
     EBELN LIKE EKKO-EBELN,
     BUKRS LIKE EKKO-BUKRS,
     BSTYP LIKE EKKO-BSTYP,
     EKORG LIKE EKKO-EKORG,
     BSART LIKE EKKO-BSART,
END OF JTAB.

SELECT * FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE LIFNR
IN LIFNR.

SELECT * FROM EKKO INTO CORRESPONDING FIELDS OF TABLE JTAB WHERE LIFNR
IN LIFNR.

TYPE-POOLS:SLIS.

DATA:LAYOUT TYPE slis_layout_alv.
DATA:EVE TYPE slis_t_event WITH HEADER LINE.
DATA:EVE1 TYPE slis_t_event WITH HEADER LINE.
DATA:HEAD TYPE slis_t_listheader WITH HEADER LINE.
DATA:FCAT TYPE slis_t_fieldcat_alv.
DATA:FCAT1 TYPE slis_t_fieldcat_alv.


LAYOUT-ZEBRA = 'X'.
LAYOUT-colwidth_optimize = 'X'.
LAYOUT-WINDOW_TITLEBAR = 'VENDOR DETAILS SCREEN'.



EVE1-NAME = 'TOP_OF_PAGE'.
EVE1-FORM = 'TOP_OF_PAGE1'.
APPEND EVE1.


CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
 EXPORTING
   I_LIST_TYPE           = 0
 IMPORTING
   ET_EVENTS             = EVE[]
 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.


READ TABLE EVE WITH KEY NAME = 'TOP_OF_PAGE'.
EVE-FORM = 'TOP_OF_PAGE'.
MODIFY EVE TRANSPORTING FORM WHERE NAME = 'TOP_OF_PAGE'.




CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
  EXPORTING
    I_CALLBACK_PROGRAM             = SY-REPID
*   I_CALLBACK_PF_STATUS_SET       = ' '
*   I_CALLBACK_USER_COMMAND        = ' '
*   IT_EXCLUDING                   =
          .


CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
 EXPORTING
   I_PROGRAM_NAME               = SY-REPID
   I_INTERNAL_TABNAME           = 'ITAB'
*   I_STRUCTURE_NAME             =
*   I_CLIENT_NEVER_DISPLAY       = 'X'
   I_INCLNAME                   = SY-REPID
*   I_BYPASSING_BUFFER           =
*   I_BUFFER_ACTIVE              =
  CHANGING
    CT_FIELDCAT                  = FCAT
* 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_BLOCK_LIST_APPEND'
  EXPORTING
    IS_LAYOUT                        = LAYOUT
    IT_FIELDCAT                      = FCAT
    I_TABNAME                        = 'ITAB'
    IT_EVENTS                        = EVE[]
*   IT_SORT                          =
*   I_TEXT                           = ' '
  TABLES
    T_OUTTAB                         = ITAB
* EXCEPTIONS
*   PROGRAM_ERROR                    = 1
*   MAXIMUM_OF_APPENDS_REACHED       = 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_FIELDCATALOG_MERGE'
 EXPORTING
   I_PROGRAM_NAME               = SY-REPID
   I_INTERNAL_TABNAME           = 'JTAB'
*   I_STRUCTURE_NAME             =
*   I_CLIENT_NEVER_DISPLAY       = 'X'
   I_INCLNAME                   = SY-REPID
*   I_BYPASSING_BUFFER           =
*   I_BUFFER_ACTIVE              =
  CHANGING
    CT_FIELDCAT                  = FCAT1
* 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_BLOCK_LIST_APPEND'
  EXPORTING
    IS_LAYOUT                        = LAYOUT
    IT_FIELDCAT                      = FCAT1
    I_TABNAME                        = 'JTAB'
    IT_EVENTS                        = EVE1[]
*   IT_SORT                          =
*   I_TEXT                           = ' '
  TABLES
    T_OUTTAB                         = JTAB
* EXCEPTIONS
*   PROGRAM_ERROR                    = 1
*   MAXIMUM_OF_APPENDS_REACHED       = 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_BLOCK_LIST_DISPLAY'
* EXPORTING
*   I_INTERFACE_CHECK             = ' '
*   IS_PRINT                      =
*   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        =
* 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 TOP_OF_PAGE.
REFRESH HEAD.
     HEAD-TYP = 'H'.
     HEAD-INFO = 'VENDORS DETAILS'.
     APPEND HEAD.

     CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
         IT_LIST_COMMENTARY       = HEAD[]
*        I_LOGO                   =
*        I_END_OF_LIST_GRID       =
               .

ENDFORM.


FORM TOP_OF_PAGE1.
REFRESH HEAD.
     HEAD-TYP = 'H'.
     HEAD-INFO = 'PURCHASE DOCCUMENTS DETAILS'.
     APPEND HEAD.

     CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
         IT_LIST_COMMENTARY       = HEAD[]
*        I_LOGO                   =
*        I_END_OF_LIST_GRID       =
               .

ENDFORM.

rgds,

bharat.

Read only

Former Member
0 Likes
939

Tables:EKKO, EKPO .

type-pools:slis.

types:begin of itab,

ebeln like ekko-ebeln,

lifnr like ekko-lifnr,

matnr like ekpo-matnr,

menge like ekpo-menge,

BOX(1) TYPE C,

end of itab.

data: it_itab TYPE STANDARD TABLE OF ITAB INITIAL SIZE 0,

wa_itab TYPE ITAB.

data:fieldcatalog type slis_t_fieldcat_alv,

alv_layout type slis_layout_alv,

sy_repid like sy-repid.

DATA: AFIELD TYPE SLIS_FIELDCAT_ALV.

types:begin of btab,

matnr like mara-matnr,

mtart like mara-mtart,

matkl like mara-matkl,

BOX(1) TYPE C,

end of btab.

data: it_btab TYPE STANDARD TABLE OF BTAB INITIAL SIZE 0.

data:fieldcatalog1 type slis_t_fieldcat_alv,

alv_layout1 type slis_layout_alv.

DATA: aEVENTS TYPE SLIS_T_EVENT.

DATA: bEVENTS TYPE SLIS_T_EVENT.

data: XS_EVENT TYPE SLIS_ALV_EVENT.

DATA: GT_PRINT TYPE SLIS_PRINT_ALV.

data: PFSTATUS TYPE SLIS_FORMNAME value 'PF_STATUS_SET'.

Selection-screen begin of block A with FRAME TITLE text-001.

parameters: Grid radiobutton group rad,

List radiobutton group rad.

Selection-screen end of block A.

START-OF-SELECTION.

perform select_data.

perform aevents.

perform bevents.

perform fields.

perform display_layout.

&----


*& Form select_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM select_data .

Select aebeln alifnr bmatnr bmenge from ekko as a inner join ekpo as b on aebeln = bebeln

into corresponding fields of table it_itab.

sort it_itab BY EBELN.

select matnr mtart matkl up to 10 rows from mara into corresponding fields of table it_btab.

sort it_btab by matnr.

ENDFORM. " select_data

&----


*& Form aevents

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM aevents .

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.

XS_EVENT-FORM = 'END_OF_PAGE'.

APPEND XS_EVENT TO aEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

XS_EVENT-FORM = 'TOP_OF_PAGE'.

APPEND XS_EVENT TO aEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.

XS_EVENT-FORM = 'TOP_OF_LIST'.

APPEND XS_EVENT TO aEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_LIST.

XS_EVENT-FORM = 'END_OF_LIST'.

APPEND XS_EVENT TO aEVENTS.

CLEAR XS_EVENT.

ENDFORM. " aevents

&----


*& Form bevents

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM bevents .

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.

XS_EVENT-FORM = 'END_OF_PAGE'.

APPEND XS_EVENT TO bEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

XS_EVENT-FORM = 'TOP_OF_PAGE'.

APPEND XS_EVENT TO bEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.

XS_EVENT-FORM = 'TOP_OF_LIST'.

APPEND XS_EVENT TO bEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_LIST.

XS_EVENT-FORM = 'END_OF_LIST'.

APPEND XS_EVENT TO bEVENTS.

ENDFORM. " bevents

&----


*& Form fields

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fields.

DATA: L_COUNT TYPE I.

CLEAR AFIELD.

L_COUNT = L_COUNT + 1.

AFIELD-COL_POS = L_COUNT.

AFIELD-FIELDNAME = 'EBELN'.

AFIELD-REF_TABNAME = 'EKKO'.

AFIELD-seltext_l = 'PO Document No.'.

AFIELD-outputlen = 25.

AFIELD-KEY = 'X'. "define field as key

APPEND AFIELD TO FIELDcatalog.

CLEAR AFIELD.

L_COUNT = L_COUNT + 1.

AFIELD-COL_POS = L_COUNT.

AFIELD-FIELDNAME = 'LIFNR'.

AFIELD-REF_TABNAME = 'EKKO'.

AFIELD-seltext_l = 'Vendor Acc.No.'.

AFIELD-outputlen = 15.

APPEND AFIELD TO FIELDcatalog.

CLEAR AFIELD.

L_COUNT = L_COUNT + 1.

AFIELD-COL_POS = L_COUNT.

AFIELD-FIELDNAME = 'MATNR'.

AFIELD-REF_TABNAME = 'EKPO'.

AFIELD-seltext_l = 'Material No.'.

AFIELD-outputlen = 25.

APPEND AFIELD TO FIELDcatalog.

CLEAR AFIELD.

L_COUNT = L_COUNT + 1.

AFIELD-COL_POS = L_COUNT.

AFIELD-FIELDNAME = 'MENGE'.

AFIELD-REF_TABNAME = 'EKPO'.

AFIELD-seltext_l = 'Order Quantity'.

AFIELD-outputlen = 15.

APPEND AFIELD TO FIELDcatalog.

CLEAR AFIELD.

L_COUNT = L_COUNT + 1.

AFIELD-COL_POS = L_COUNT.

AFIELD-FIELDNAME = 'MATNR'.

AFIELD-REF_TABNAME = 'MARA'.

AFIELD-seltext_l = 'Material No.'.

AFIELD-outputlen = 25.

AFIELD-KEY = 'X'. "define field as key

APPEND AFIELD TO FIELDcatalog1.

CLEAR AFIELD.

L_COUNT = L_COUNT + 1.

AFIELD-COL_POS = L_COUNT.

AFIELD-FIELDNAME = 'MTART'.

AFIELD-REF_TABNAME = 'MARA'.

AFIELD-seltext_l = 'Material Type'.

AFIELD-outputlen = 15.

APPEND AFIELD TO FIELDcatalog1.

CLEAR AFIELD.

L_COUNT = L_COUNT + 1.

AFIELD-COL_POS = L_COUNT.

AFIELD-FIELDNAME = 'MATKL'.

AFIELD-REF_TABNAME = 'MARA'.

AFIELD-seltext_l = 'Material Group'.

AFIELD-outputlen = 15.

APPEND AFIELD TO FIELDcatalog1.

ENDFORM. " fields

&----


*& Form display_layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_layout .

sy_repid = sy-repid.

if GRID = 'X'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

I_CALLBACK_PROGRAM = sy_REPID

  • I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_CALLBACK_PF_STATUS_SET = PFSTATUS.

alv_LAYOUT1-BOX_FIELDNAME = 'BOX'.

alv_LAYOUT1-BOX_TABNAME = 'it_btab'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = alv_layout1

IT_FIELDCAT = fieldcatalog1

I_TABNAME = 'it_btab'

IT_EVENTS = bevents

  • IT_SORT =

  • I_TEXT = ' '

TABLES

T_OUTTAB = it_btab

EXCEPTIONS

PROGRAM_ERROR = 1

MAXIMUM_OF_APPENDS_REACHED = 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.

alv_LAYOUT-BOX_FIELDNAME = 'BOX'.

alv_LAYOUT-BOX_TABNAME = 'it_atab'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = alv_layout

IT_FIELDCAT = fieldcatalog

I_TABNAME = 'it_itab'

IT_EVENTS = aevents

  • IT_SORT =

  • I_TEXT = ' '

TABLES

T_OUTTAB = it_itab

EXCEPTIONS

PROGRAM_ERROR = 1

MAXIMUM_OF_APPENDS_REACHED = 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.

  • GT_PRINT-RESERVE_LINES = 2.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

EXPORTING

IS_PRINT = GT_PRINT.

ENDIF.

ENDFORM. "display_layout

Read only

Former Member
0 Likes
939

Hi,

just copy & execute the two progrms..

1. For drill down ALV



REPORT ZSBN_ALV_TEST .

TYPE-POOLS : SLIS.

*************************************************
*                  FOR ALV                      *
*************************************************
DATA:IS_LAYOUT    TYPE  SLIS_LAYOUT_ALV,
     IT_EVENTS    TYPE  SLIS_T_EVENT,
     WA_EVENTS    TYPE  SLIS_ALV_EVENT,
     W_FCAT       TYPE  SLIS_FIELDCAT_ALV,
     T_FCAT       TYPE  SLIS_T_FIELDCAT_ALV.

DATA : I(4).
DATA : BEGIN OF ITAB OCCURS 0.
          INCLUDE TYPE PA0001.
DATA : END OF ITAB.

DATA : BEGIN OF ITAB1 OCCURS 0.
          INCLUDE TYPE PA0002.
DATA : END OF ITAB1.

*&*& DATA FROM PA0001
SELECT DISTINCT * FROM PA0001
       INTO TABLE ITAB.

SORT ITAB.
DELETE ADJACENT DUPLICATES FROM ITAB COMPARING PERNR.

*&*& FCAT
  W_FCAT-FIELDNAME = 'PERNR'.
  W_FCAT-SELTEXT_M = 'Emp No'.
  W_FCAT-HOTSPOT = 'X'.
  APPEND W_FCAT TO T_FCAT.
  CLEAR W_FCAT.

  W_FCAT-FIELDNAME = 'ENAME'.
  W_FCAT-SELTEXT_M = 'Emp NAme'.
  APPEND W_FCAT TO T_FCAT.
  CLEAR W_FCAT.

*I = 1.
*DO 1000 TIMES.
*  W_FCAT-FIELDNAME = 'PERNR'.
*  W_FCAT-SELTEXT_M = I.
*  W_FCAT-HOTSPOT = 'X'.
*  APPEND W_FCAT TO T_FCAT.
*  CLEAR W_FCAT.
*  I = I + 1.
*ENDDO.

*&*& layout
IS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

*&*&

   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
     EXPORTING
       I_CALLBACK_PROGRAM       = SY-CPROG
       I_CALLBACK_USER_COMMAND  = 'F_USERCOMMAND_ALV'
       IS_LAYOUT                = IS_LAYOUT
       IT_FIELDCAT              = T_FCAT
     TABLES
        T_OUTTAB                 = ITAB.


*&*& FOR DRILL DOWN WHEN CLICK ON PERNR
FORM F_USERCOMMAND_ALV USING R_UCOMM     LIKE SY-UCOMM
                             RS_SELFIELD TYPE SLIS_SELFIELD.


*&*& TAKING ALL RECORDS IN PA0002 FOR THAT EMP
CLEAR :ITAB1[].

  SELECT *
         FROM PA0002
         INTO TABLE ITAB1
         WHERE
               PERNR EQ RS_SELFIELD-VALUE.


CLEAR :   T_FCAT[].
*&*& FCAT
  W_FCAT-FIELDNAME = 'PERNR'.
  W_FCAT-SELTEXT_M = 'Emp No'.
  APPEND W_FCAT TO T_FCAT.
  CLEAR W_FCAT.

  W_FCAT-FIELDNAME = 'GBDAT'.
  W_FCAT-SELTEXT_M = 'DATE'.
  APPEND W_FCAT TO T_FCAT.
  CLEAR W_FCAT.

  W_FCAT-FIELDNAME = 'GESCH'.
  W_FCAT-SELTEXT_M = 'SEX'.
  APPEND W_FCAT TO T_FCAT.
  CLEAR W_FCAT.


   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
     EXPORTING
       I_CALLBACK_PROGRAM       = SY-CPROG
       IS_LAYOUT                = IS_LAYOUT
       IT_FIELDCAT              = T_FCAT
     TABLES
        T_OUTTAB                 = ITAB1.


ENDFORM.

2. For Blocked alv



REPORT ZSBN_BLOCK_ALV .

TYPE-POOLS : SLIS.

TABLES: PA0001, PA0002.

DATA  : FCAT        TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
        FCAT1       TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
        ILAYOUT     TYPE SLIS_LAYOUT_ALV,
        XS_EVENT    TYPE SLIS_ALV_EVENT,
        GT_XEVENTS  TYPE SLIS_T_EVENT,
        GT_YEVENTS  TYPE SLIS_T_EVENT,
        IT_SORT     TYPE SLIS_T_SORTINFO_ALV,
        WA_SORT     TYPE SLIS_SORTINFO_ALV.


DATA : BEGIN OF INT_PA0001 OCCURS 0.
          INCLUDE TYPE PA0001.
DATA : END OF INT_PA0001.

DATA : BEGIN OF INT_PA0002 OCCURS 0.
          INCLUDE TYPE PA0002.
DATA : END OF INT_PA0002.

*&*& DATA FROM PA0001
SELECT * FROM PA0001
       UP TO 5 ROWS
       INTO TABLE INT_PA0001.

*&*& DATA FROM PA0002
IF NOT INT_PA0001[] IS INITIAL.
  SELECT * FROM PA0002 INTO TABLE INT_PA0002
    FOR ALL ENTRIES IN INT_PA0001
    WHERE
           PERNR EQ INT_PA0001-PERNR.
ENDIF.

*&*& LAYOUT DEF
 ILAYOUT-COLWIDTH_OPTIMIZE = 'X'.
 ILAYOUT-ZEBRA  =  'X'.

*&*& FCAT1
CLEAR FCAT.
FCAT-FIELDNAME = 'PERNR'.
FCAT-SELTEXT_M   = 'Emp No'.
FCAT-TABNAME  = 'INT_PA0001'.
APPEND FCAT.

CLEAR FCAT.
FCAT-FIELDNAME = 'BEGDA'.
FCAT-SELTEXT_M   = 'St Date'.
FCAT-TABNAME  = 'INT_PA0001'.
APPEND FCAT.

CLEAR FCAT.
FCAT-FIELDNAME = 'ENDDA'.
FCAT-SELTEXT_M   = 'End Date'.
FCAT-TABNAME  = 'INT_PA0001'.
APPEND FCAT.

CLEAR FCAT.
FCAT-FIELDNAME = 'BUKRS'.
FCAT-SELTEXT_M   = 'Comp Code'.
FCAT-TABNAME  = 'INT_PA0001'.
APPEND FCAT.

CLEAR FCAT.
FCAT-FIELDNAME = 'WERKS'.
FCAT-SELTEXT_M   = 'Plant'.
FCAT-TABNAME  = 'INT_PA0001'.
APPEND FCAT.

*&*& FCAT2
CLEAR FCAT1.
FCAT1-FIELDNAME = 'PERNR'.
FCAT1-SELTEXT_M   = 'Emp No'.
FCAT-TABNAME  = 'INT_PA0002'.
APPEND FCAT1.

CLEAR FCAT1.
FCAT1-FIELDNAME = 'NACHN'.
FCAT1-SELTEXT_M   = 'Emp Name'.
FCAT-TABNAME  = 'INT_PA0002'.
APPEND FCAT1.

CLEAR FCAT1.
FCAT1-FIELDNAME = 'INITS'.
FCAT1-SELTEXT_M   = 'Initial'.
FCAT-TABNAME  = 'INT_PA0002'.
APPEND FCAT1.

*&*& FOR EVENTS
CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'XTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_XEVENTS.
CLEAR XS_EVENT.

CLEAR XS_EVENT.
XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENT-FORM = 'YTOP_OF_PAGE'.
APPEND XS_EVENT TO GT_YEVENTS.
CLEAR XS_EVENT.

*&*& FOR SORT
CLEAR WA_SORT.
WA_SORT-FIELDNAME = 'PERNR'.
APPEND WA_SORT TO IT_SORT.
CLEAR WA_SORT.


*&*& BLOCK ALV -- INTIALIZATION
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
  EXPORTING
    I_CALLBACK_PROGRAM             = SY-CPROG.

*&*& APPENDING FIRST FCAT
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
  EXPORTING
    IS_LAYOUT                        = ILAYOUT
    IT_FIELDCAT                      = FCAT[]
    I_TABNAME                        = 'INT_PA0001'
    IT_EVENTS                        = GT_XEVENTS
    IT_SORT                          = IT_SORT
  TABLES
    T_OUTTAB                         = INT_PA0001.

*&*& APPENDING SECOND FCAT
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
  EXPORTING
    IS_LAYOUT                        = ILAYOUT
    IT_FIELDCAT                      = FCAT1[]
    I_TABNAME                        = 'INT_PA0002'
    IT_EVENTS                        = GT_YEVENTS
    IT_SORT                          = IT_SORT
  TABLES
    T_OUTTAB                         = INT_PA0002.

*&*& FUN MOD FOR DISPLAY
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.


*&*& FOR TOP OF PAGE ALV-1
FORM XTOP_OF_PAGE.
  WRITE : 'ALV 1', 30 SY-DATUM.
ENDFORM.

*&*& FOR TOP OF PAGE ALV-2
FORM YTOP_OF_PAGE.
  WRITE : 'ALV 2', 30 SY-DATUM.
ENDFORM.

With Rgds,

S.barani

Read only

Former Member
0 Likes
939

Hi,

Regarding the ALV's.See this link:

http://www.saptechnical.com/Tutorials/ALV/ALVMainPage.htm

Regards,

If helpful reward with points(Don't forget).

Read only

Former Member
0 Likes
939

Hi

two oupt program

&----


*& Report ZAMIT_ALVOOPS

*&

&----


*&

*&

&----


REPORT ZNNR_ALVOOPS_SCREEN.

tables: mara,spfli.

types: begin of ty_tab,

matnr type mara-matnr,

ernam type mara-ernam,

ersda type mara-ersda,

end of ty_tab.

DATA ITAB1 TYPE TABLE OF SPFLI.

DATA WA1 LIKE LINE OF ITAB1.

DATA IO1 TYPE SPFLI-CARRID VALUE 'AA'.

data itab type table of ty_tab.

data wa like line of itab.

DATA OK_CODE TYPE SY-UCOMM.

DATA: GRID TYPE REF TO CL_GUI_ALV_GRID,

CONT TYPE REF TO CL_GUI_CUSTOM_CONTAINER.

DATA: GRID1 TYPE REF TO CL_GUI_ALV_GRID,

CONTA TYPE REF TO CL_GUI_CUSTOM_CONTAINER.

CREATE OBJECT CONT EXPORTING CONTAINER_NAME = 'CONT1' .

CREATE OBJECT GRID EXPORTING I_PARENT = CONT .

CREATE OBJECT CONTA EXPORTING CONTAINER_NAME = 'CONT2' .

CREATE OBJECT GRID1 EXPORTING I_PARENT = CONTA .

selection-screen begin of block b1 with frame title text-100.

select-options: s_matnr for mara-matnr.

selection-screen end of block b1.

select matnr ernam ersda from mara into corresponding fields of table itab up to 15 rows

where matnr in s_matnr .

call selection-screen 100.

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE USER_COMMAND_0100 INPUT.

if ok_code = 'PB1'.

leave to screen 0.

else.

leave to screen 100.

endif.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE STATUS_0100 OUTPUT.

  • SET PF-STATUS 'xxxxxxxx'.

  • SET TITLEBAR 'xxx'.

SELECT * FROM SPFLI INTO

CORRESPONDING FIELDS OF TABLE ITAB1 WHERE CARRID = IO1.

CALL METHOD grid->SET_TABLE_FOR_FIRST_DISPLAY

EXPORTING

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • I_CONSISTENCY_CHECK =

I_STRUCTURE_NAME = 'MARA'

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT = 'X'

  • IS_LAYOUT =

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

  • IR_SALV_ADAPTER =

CHANGING

IT_OUTTAB = itab.

  • IT_FIELDCATALOG =

  • IT_SORT =

  • IT_FILTER =

  • EXCEPTIONS

  • INVALID_PARAMETER_COMBINATION = 1

  • PROGRAM_ERROR = 2

  • TOO_MANY_LINES = 3

  • others = 4

.

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 METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY

EXPORTING

I_STRUCTURE_NAME = 'SPFLI'

CHANGING

IT_OUTTAB = ITAB1.

ENDMODULE. " STATUS_0100 OUTPUT

Read only

Former Member
0 Likes
939

Hi,

Yes by using Block List u can display two list in a report.

Here is a sample code for block ALV:

TYPE-POOLS : SLIS.

&----


*& structure declaration

&----


TYPES : BEGIN OF ST_EKKO,

EBELN TYPE EKKO-EBELN, "Purchasing Document Number

BSTYP TYPE EKKO-BSTYP, "Purchasing Document Category

BSART TYPE EKKO-BSART, "Purchasing Document Type

AEDAT TYPE EKKO-AEDAT, "record created on

ERNAM TYPE EKKO-ERNAM, "Person who Created the Object

END OF ST_EKKO.

TYPES : BEGIN OF ST_EKPO,

EBELN TYPE EKKO-EBELN,

EBELP TYPE EKPO-EBELP, "Item Number of Purchasing Document

EMATN TYPE EKPO-EMATN, "Material number

MATKL TYPE EKPO-MATKL, "Material group

NETPR TYPE EKPO-NETPR, "Net price in purchasing document

END OF ST_EKPO.

&----


*& internal table and work area declaration

&----


DATA : IT_EKPO TYPE STANDARD TABLE OF ST_EKPO,

IT_EKKO TYPE STANDARD TABLE OF ST_EKKO,

IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV,

IT_FIELDCAT2 TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT2 TYPE SLIS_FIELDCAT_ALV,

IT_EVENTS TYPE SLIS_T_EVENT,

WA_LAYOUT TYPE SLIS_LAYOUT_ALV.

&----


*& data declaration

&----


DATA : V_EBELN TYPE EKKO-EBELN.

&----


*& selection-screen

&----


SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-000.

SELECT-OPTIONS : SO_EBELN FOR V_EBELN.

SELECTION-SCREEN END OF BLOCK A.

&----


*& At-selection-screen

&----


AT SELECTION-SCREEN ON SO_EBELN.

PERFORM VALIDATE_EBELN.

&----


*& start-of-selection

&----


START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

&----


*& end-of-selection

&----


END-OF-SELECTION.

PERFORM INITIALIZE_ALV_BLOCK.

PERFORM BUILD_FIELDCATALOG1.

PERFORM BUILD_FIELDCATALOG2.

PERFORM BUILD_LAYOUT.

PERFORM GET_EVENTS .

PERFORM APPEND_EKKODATA_TO_ALV_BLOCK.

PERFORM APPEND_EKPODATA_TO_ALV_BLOCK.

PERFORM DISPLAY_BLOCKED_ALV.

&----


*& FORM initialize_alv_block

&----


FORM INITIALIZE_ALV_BLOCK.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID.

ENDFORM.

&----


*& FORM validate_ebeln

&----


FORM VALIDATE_EBELN.

SELECT EBELN

FROM EKKO

INTO TABLE IT_EKKO

WHERE EBELN IN SO_EBELN.

IF SY-SUBRC NE 0.

MESSAGE TEXT-003 TYPE 'W'.

ENDIF.

ENDFORM.

&----


*& FORM data_retrieval

&----


FORM DATA_RETRIEVAL.

SELECT EBELN BSTYP BSART AEDAT ERNAM

FROM EKKO

INTO TABLE IT_EKKO

WHERE EBELN IN SO_EBELN.

IF SY-SUBRC NE 0.

MESSAGE TEXT-001 TYPE 'I'.

ENDIF.

SELECT EBELN EBELP EMATN MATKL NETPR

FROM EKPO

INTO TABLE IT_EKPO

WHERE EBELN IN SO_EBELN.

IF SY-SUBRC NE 0.

MESSAGE TEXT-002 TYPE 'I'.

ENDIF.

ENDFORM.

&----


*& Form build_fieldcatalog1

&----


FORM BUILD_FIELDCATALOG1.

WA_FIELDCAT1-FIELDNAME = 'EBELN'.

WA_FIELDCAT1-SELTEXT_L = 'PURCHASE ORDER'.

WA_FIELDCAT1-COL_POS = 0.

WA_FIELDCAT1-DO_SUM = 'X'.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'BSTYP'.

WA_FIELDCAT1-SELTEXT_L = 'DOCUMENT CATEGORY'.

WA_FIELDCAT1-COL_POS = 1.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'BSART'.

WA_FIELDCAT1-SELTEXT_L = 'DOCUMENT TYPE'.

WA_FIELDCAT1-COL_POS = 2.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'AEDAT'.

WA_FIELDCAT1-SELTEXT_L = 'DATE'.

WA_FIELDCAT1-COL_POS = 3.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'ERNAM'.

WA_FIELDCAT1-SELTEXT_L = 'NAME'.

WA_FIELDCAT1-COL_POS = 4.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

ENDFORM. "build_fieldcatalog

&----


*& Form build_fieldcatalog2

&----


FORM BUILD_FIELDCATALOG2.

WA_FIELDCAT2-FIELDNAME = 'EBELN'.

WA_FIELDCAT2-SELTEXT_L = 'PURCHASE ORDER'.

WA_FIELDCAT2-COL_POS = 0.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'EBELP'.

WA_FIELDCAT2-SELTEXT_L = 'ITEM NUMBER'.

WA_FIELDCAT2-COL_POS = 1.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'EMATN'.

WA_FIELDCAT2-SELTEXT_L = 'MATERIAL TYPE'.

WA_FIELDCAT2-COL_POS = 2.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'MATKL'.

WA_FIELDCAT2-SELTEXT_L = 'MATERIAL GROUP'.

WA_FIELDCAT2-COL_POS = 3.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'NETPR'.

WA_FIELDCAT2-SELTEXT_L = 'NET PRICE'.

WA_FIELDCAT2-COL_POS = 4.

WA_FIELDCAT2-DO_SUM = 'X'.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

ENDFORM. "build_fieldcatalog

&----


*& form build_layout.

&----


FORM BUILD_LAYOUT.

WA_LAYOUT-ZEBRA ='X'.

WA_LAYOUT-NO_VLINE = ' '.

WA_LAYOUT-NO_HLINE = ' '.

WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

WA_LAYOUT-WINDOW_TITLEBAR = 'PURCHASE ORDER HEADER AND ITEM DETAILS'.

ENDFORM. "build_layout

&----


*& form append_ekkodata_to_alv_block

&----


FORM APPEND_EKKODATA_TO_ALV_BLOCK.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT1

I_TABNAME ='it_ekko'

IT_EVENTS = IT_EVENTS[]

  • IT_SORT = IT_SORT

  • I_TEXT = ' '

TABLES

T_OUTTAB = IT_EKKO

EXCEPTIONS

PROGRAM_ERROR = 1

MAXIMUM_OF_APPENDS_REACHED = 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.

&----


*& form append_ekpodata_to_alv_block

&----


FORM APPEND_EKPODATA_TO_ALV_BLOCK.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT2

I_TABNAME ='it_ekpo'

IT_EVENTS = IT_EVENTS[]

  • IT_SORT = IT_SORT

  • I_TEXT = ' '

TABLES

T_OUTTAB = IT_EKPO

EXCEPTIONS

PROGRAM_ERROR = 1

MAXIMUM_OF_APPENDS_REACHED = 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.

&----


*& FORM display_blocked_alv.

&----


FORM DISPLAY_BLOCKED_ALV.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.

ENDFORM.

&----


*& Form GET_EVENTS

&----


FORM GET_EVENTS .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 2

IMPORTING

ET_EVENTS = IT_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. " GET_EVENTS

Regards,

kavitha