Application Development 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: 

ALV GRID Display

Former Member
0 Kudos

Hi,

Can any one give me one exaple for displaying data of an internal table containing few fields(by taking two or three fields)by using reuse_alv_grid_display.

Regards

Vijaya .

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hai Vijaya

Go through the following Code

&----


*& Report ZALV_SAMP *

*& *

&----


*& *

*& *

&----


REPORT ZALV_SAMP .

TABLES: MARA.

TYPE-POOLS : SLIS.

*----


  • Data declaration

*----


DATA: BEGIN OF I_MARA OCCURS 0.

INCLUDE STRUCTURE MARA.

DATA: END OF I_MARA.

DATA: V_REPID LIKE SY-REPID.

*----


  • selection-screen

*----


SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.

SELECT-OPTIONS : S_MATNR FOR MARA-MATNR.

PARAMETERS: P_MTART LIKE MARA-MTART DEFAULT 'ROH'.

SELECTION-SCREEN END OF BLOCK B1.

*----


  • initialisation

*----


INITIALIZATION.

S_MATNR-LOW = '1400'.

S_MATNR-HIGH = '1500'.

APPEND S_MATNR.

V_REPID = SY-REPID.

*----


  • start-of-selection

*----


START-OF-SELECTION.

SELECT * FROM MARA

INTO TABLE I_MARA

WHERE MATNR IN S_MATNR AND

MTART = P_MTART.

CHECK SY-SUBRC = 0.

*----


  • end of selection

*----


END-OF-SELECTION.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = ' '

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

I_STRUCTURE_NAME = 'MARA'

  • IS_LAYOUT =

  • IT_FIELDCAT =

  • 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 = I_MARA

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

Thanks & Regards

Sreeni

6 REPLIES 6

Former Member
0 Kudos

Hai Vijaya

Go through the following Code

&----


*& Report ZALV_SAMP *

*& *

&----


*& *

*& *

&----


REPORT ZALV_SAMP .

TABLES: MARA.

TYPE-POOLS : SLIS.

*----


  • Data declaration

*----


DATA: BEGIN OF I_MARA OCCURS 0.

INCLUDE STRUCTURE MARA.

DATA: END OF I_MARA.

DATA: V_REPID LIKE SY-REPID.

*----


  • selection-screen

*----


SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.

SELECT-OPTIONS : S_MATNR FOR MARA-MATNR.

PARAMETERS: P_MTART LIKE MARA-MTART DEFAULT 'ROH'.

SELECTION-SCREEN END OF BLOCK B1.

*----


  • initialisation

*----


INITIALIZATION.

S_MATNR-LOW = '1400'.

S_MATNR-HIGH = '1500'.

APPEND S_MATNR.

V_REPID = SY-REPID.

*----


  • start-of-selection

*----


START-OF-SELECTION.

SELECT * FROM MARA

INTO TABLE I_MARA

WHERE MATNR IN S_MATNR AND

MTART = P_MTART.

CHECK SY-SUBRC = 0.

*----


  • end of selection

*----


END-OF-SELECTION.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = ' '

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

I_STRUCTURE_NAME = 'MARA'

  • IS_LAYOUT =

  • IT_FIELDCAT =

  • 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 = I_MARA

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

Thanks & Regards

Sreeni

Former Member
0 Kudos

Not sure what exactly you are looking for.

There are lot of examples in the system

Take a look at BCALVGRID* programs.

Take a look at these blogs which explain the same step by step.

/people/ravikumar.allampallam/blog/2005/06/01/alv-reporting-using-controls--part-i

/people/ravikumar.allampallam/blog/2005/06/01/alv-reporting-using-controls-control-layouts--part-ii

Regards,

Ravi

Note : Please mark the helpful answers

Message was edited by: Ravikumar Allampallam

former_member188685
Active Contributor
0 Kudos

Hi,

Check this example...

report  ztest_alv_check     message-id zz           .

type-pools: slis.
data: x_fieldcat type slis_fieldcat_alv,
      it_fieldcat type slis_t_fieldcat_alv,
      l_layout type slis_layout_alv,
      x_events type slis_alv_event,
      it_events type slis_t_event.

data: begin of itab occurs 0,
      vbeln like vbak-vbeln,
      posnr like vbap-posnr,
      ZMENG like vbap-ZMENG,
     end of itab.

select vbeln
       posnr
       zmeng
       from vbap
       up to 20 rows
       into table itab.
loop at itab.
itab-ZMENG = sy-tabix .
modify itab index sy-tabix.
endloop.


x_fieldcat-fieldname = 'VBELN'.
x_fieldcat-seltext_l = 'VBELN'.
x_fieldcat-tabname = 'ITAB'.
x_fieldcat-col_pos = 2.
append x_fieldcat to it_fieldcat.
clear x_fieldcat.

x_fieldcat-fieldname = 'POSNR'.
x_fieldcat-seltext_l = 'POSNR'.
x_fieldcat-tabname = 'ITAB'.
x_fieldcat-col_pos = 3.
append x_fieldcat to it_fieldcat.
clear x_fieldcat.

x_fieldcat-fieldname = 'ZMENG'.
x_fieldcat-seltext_l = 'ZMENG'.
x_fieldcat-tabname = 'ITAB'.
x_fieldcat-do_sum = 'X'.
x_fieldcat-col_pos = 4.
append x_fieldcat to it_fieldcat.
clear x_fieldcat.

data: sort type slis_sortinfo_alv,
      it_sort type  SLIS_T_SORTINFO_ALV.
sort-fieldname = 'VBELN'.
sort-up = 'X'.
sort-subtot = 'X'.

APPEND sort to it_sort.

call function 'REUSE_ALV_GRID_DISPLAY'
  exporting
    i_callback_program       = sy-repid
    is_layout                = l_layout
    it_fieldcat              = it_fieldcat
    it_events                = it_events
    it_sort                  = it_sort
  tables
    t_outtab                 = itab
  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.

Regards

vijay

Former Member
0 Kudos

Hi Vijaya,

U can refer to this simple code...

&----


*& Report Z_KIRANP_ALV *

*& *

&----


*& *

*& *

&----


REPORT Z_KIRANP_ALV.

TYPE-POOLS: SLIS.

TABLES : MARA,

MARC,

MAKT.

*--


WORK AREAS--
*

          • WORKAREA FOR FIELD CATALOG TABLE.

DATA: WA_FLDCAT TYPE SLIS_FIELDCAT_ALV.

          • WORKAREA FOR EVENTS TABLE.

DATA: WA_EVENTS TYPE SLIS_ALV_EVENT.

          • WORKAREA FOR LAYOUT TABLE.

DATA: WA_LAYOUT TYPE SLIS_LAYOUT_ALV.

          • WORKAREA FOR PRINT SETTINGS.

DATA: WA_PRINT TYPE SLIS_PRINT_ALV.

*--


VARIABLE DECLARATIONS.--
*

DATA: V_CPROG TYPE SY-CPROG, " REPORT ID.

V_UNAME TYPE SY-UNAME. " USER NAME.

*--


INTERNAL TABLES DECLARATION.--
*

          • INTERNAL TABLE TO HOLD THE SELECTED RECORDS

DATA: BEGIN OF IT_FINAL OCCURS 100,

MATNR LIKE MARA-MATNR,

WERKS LIKE MARC-WERKS,

ERNAM LIKE MARA-ERNAM,

PSTAT LIKE MARC-PSTAT,

MAKTX LIKE MAKT-MAKTX,

MEINS LIKE MARA-MEINS,

END OF IT_FINAL.

          • INTERNAL TABLE FOR FIELD CATALOG.

DATA : IT_FLDCAT TYPE SLIS_T_FIELDCAT_ALV.

          • INTERNAL TABLE FOR EVENTS

DATA : IT_EVENTS TYPE SLIS_T_EVENT.

*--


SELECTION CRITERIA.--
*

SELECTION-SCREEN: BEGIN OF BLOCK PROG WITH FRAME.

SELECT-OPTIONS S_MATNR FOR MARA-MATNR.

SELECT-OPTIONS S_WERKS FOR MARC-WERKS.

SELECTION-SCREEN: END OF BLOCK PROG.

----


  • I N I T I A L I Z A T I O N *

----


INITIALIZATION.

V_UNAME = SY-UNAME.

V_CPROG = SY-CPROG.

*--


START-OF-SELECTION.--
*

START-OF-SELECTION.

        • Selection of data from the database

PERFORM SUB_GET_DATA.

*--


END-OF-SELECTION.--
*

END-OF-SELECTION.

        • Build the field catalog.

PERFORM SUB_FLDCAT.

        • Modify the field catalog.

PERFORM SUB_MODIFY_FLDCAT.

        • Build the events.

PERFORM SUB_EVENTS.

        • Modify the events table.

PERFORM SUB_MODIFY_EVENTS.

        • Layout of the list.

PERFORM SUB_LAYOUT.

        • Generation of the list.

PERFORM SUB_DISP_LIST.

&----


*& Form SUB_GET_DATA

&----


  • text

----


FORM SUB_GET_DATA .

SELECT MARA~MATNR

MARC~WERKS

MARA~ERNAM

MARC~PSTAT

MAKT~MAKTX

MARA~MEINS

FROM ( MARA INNER JOIN MARC ON MARAMATNR = MARCMATNR )

INNER JOIN MAKT ON MARAMATNR = MAKTMATNR

INTO TABLE IT_FINAL

WHERE MARA~MATNR IN S_MATNR

AND MARC~WERKS IN S_WERKS.

ENDFORM. " SUB_GET_DATA

&----


*& Form SUB_FLDCAT

&----


  • text

----


FORM SUB_FLDCAT .

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = V_CPROG

I_INTERNAL_TABNAME = 'IT_FINAL'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = V_CPROG

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = IT_FLDCAT

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. " SUB_FLDCAT

&----


*& Form SUB_MODIFY_FLDCAT

&----


  • text

----


FORM SUB_MODIFY_FLDCAT .

LOOP AT IT_FLDCAT INTO WA_FLDCAT.

CASE WA_FLDCAT-FIELDNAME.

WHEN 'MATNR'.

WA_FLDCAT-SELTEXT_M = 'Material Number' .

WA_FLDCAT-DDICTXT = 'M'.

WA_FLDCAT-COL_POS = 1.

WA_FLDCAT-KEY = 'X'.

WHEN 'MAKTX'.

WA_FLDCAT-SELTEXT_M = 'Material Description' .

WA_FLDCAT-DDICTXT = 'M'.

WA_FLDCAT-COL_POS = 2.

WA_FLDCAT-KEY = SPACE.

WHEN 'WERKS'.

WA_FLDCAT-SELTEXT_M = 'Plant' .

WA_FLDCAT-DDICTXT = 'M'.

WA_FLDCAT-COL_POS = 3.

WA_FLDCAT-KEY = SPACE.

WHEN 'ERNAM'.

WA_FLDCAT-SELTEXT_M = 'Name' .

WA_FLDCAT-DDICTXT = 'M'.

WA_FLDCAT-COL_POS = 4.

WA_FLDCAT-KEY = SPACE.

WHEN 'PSTAT'.

WA_FLDCAT-SELTEXT_M = 'Maintenance status' .

WA_FLDCAT-DDICTXT = 'M'.

WA_FLDCAT-COL_POS = 5.

WA_FLDCAT-KEY = SPACE.

WHEN 'MEINS'.

WA_FLDCAT-SELTEXT_M = 'UoM' .

WA_FLDCAT-DDICTXT = 'M'.

WA_FLDCAT-COL_POS = 6.

WA_FLDCAT-KEY = SPACE.

ENDCASE.

MODIFY IT_FLDCAT FROM WA_FLDCAT.

ENDLOOP.

ENDFORM. " SUB_MODIFY_FLDCAT

&----


*& Form SUB_EVENTS

&----


  • text

----


FORM SUB_EVENTS .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

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. " SUB_EVENTS

&----


*& Form SUB_MODIFY_EVENTS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SUB_MODIFY_EVENTS .

READ TABLE IT_EVENTS INTO WA_EVENTS

WITH KEY NAME = SLIS_EV_TOP_OF_PAGE.

WA_EVENTS-FORM = 'SUB_FRM_TOP'.

MODIFY IT_EVENTS FROM WA_EVENTS INDEX SY-TABIX.

ENDFORM. " SUB_MODIFY_EVENTS

&----


*& Form SUB_LAYOUT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SUB_LAYOUT .

WA_LAYOUT-ZEBRA = 'X'.

WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

ENDFORM. " SUB_LAYOUT

&----


*& Form SUB_DISP_LIST

&----


  • text

----


FORM SUB_DISP_LIST .

SORT IT_FINAL.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = V_CPROG

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FLDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = 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 = IT_FINAL

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. " SUB_DISP_LIST

Regards,

kiran B

Former Member
0 Kudos

Hi P Vijaya,

Here is the code use these values to check-

For mate docu no - 50000042 to 50000099

For docu yr - 1994.

TABLES: mkpf, mseg, mchb, sscrfields.

TYPE-POOLS slis.

DATA: r_ucomm LIKE sy-ucomm,

rs_selfield TYPE slis_selfield,

save_ok LIKE sy-ucomm,

prognam LIKE sy-repid,

tabindex TYPE i.

prognam = sy-repid.

DATA alv TYPE REF TO cl_gui_alv_grid.

DATA: BEGIN OF t_mseg OCCURS 0,

zeile LIKE mseg-zeile,

menge LIKE mseg-menge,

meins LIKE mseg-meins,

matnr LIKE mseg-matnr,

werks LIKE mseg-werks,

charg LIKE mseg-charg,

bwart LIKE mseg-bwart,

END OF t_mseg,

fieldcattab TYPE slis_t_fieldcat_alv WITH HEADER LINE.

DATA: BEGIN OF t_mchb OCCURS 0,

matnr TYPE mchb-matnr,

charg TYPE mchb-charg,

werks TYPE mchb-werks,

clabs TYPE mchb-clabs,

END OF t_mchb,

t_mchb1 LIKE TABLE OF t_mchb WITH HEADER LINE.

SELECTION-SCREEN BEGIN OF BLOCK b_b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS s_docno FOR mkpf-mblnr OBLIGATORY.

PARAMETERS p_docyr LIKE mkpf-mjahr OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b_b1.

INITIALIZATION.

sscrfields-functxt_01 = 'Refresh'.

sscrfields-ucomm = 'fc01'.

AT SELECTION-SCREEN.

CASE sscrfields-ucomm.

WHEN 'FC01'.

CLEAR: s_docno[],

p_docyr.

ENDCASE.

START-OF-SELECTION.

SELECT zeile

menge

meins

matnr

werks

charg

bwart

FROM mseg

INTO TABLE t_mseg

WHERE mblnr IN s_docno AND mjahr = p_docyr.

SELECT matnr

charg

werks

clabs

FROM mchb

INTO TABLE t_mchb

FOR ALL ENTRIES IN t_mseg

WHERE mchb~matnr = t_mseg-matnr.

CLEAR fieldcattab.

fieldcattab-col_pos = 1.

fieldcattab-fieldname = 'ZEILE'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-fix_column = 'X'.

fieldcattab-seltext_l = 'Item'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 2.

fieldcattab-fieldname = 'MENGE'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Quantity'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 3.

fieldcattab-fieldname = 'MEINS'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'U-O-M'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 4.

fieldcattab-fieldname = 'MATNR'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Material No'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 5.

fieldcattab-fieldname = 'WERKS'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Plant'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 6.

fieldcattab-fieldname = 'CHARG'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Batch No'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 7.

fieldcattab-fieldname = 'BWART'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Movement Type'.

APPEND fieldcattab.

  • CLEAR gs_layout.

  • gs_layout-zebra = 'X'.

  • gs_layout-info_fieldname = 'LINE_COLOR'.

  • APPEND gs_layout.

END-OF-SELECTION.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = prognam

i_callback_user_command = 'USERCOMMAND'

it_fieldcat = fieldcattab[]

TABLES

t_outtab = t_mseg[].

Just copy this code n run it.

Hope this helps.

Seema.

Former Member
0 Kudos

hi vijaya,

check this code..

tables: lfa1,lfb1,lfm1.

type-pools: slis.

type-pools: icon.

***DATA DECLN.

data: v_lifnr like lfa1-lifnr,

v_bukrs like lfb1-bukrs,

v_ekorg like lfm1-ekorg,

v_ktokk like lfa1-ktokk.

***FIELD CATALOG.

*CHANGES BY LAXMI

data: itab_fieldcat type slis_t_fieldcat_alv with header line.

*END CHANGES

***SORTING

data: itab_sort type slis_t_sortinfo_alv.

    • FOR LAYOUT

data: wa_layout type slis_layout_alv.

data : v_repid type sy-repid.

*INTERNAL TABLE DECLN

data: begin of itab occurs 0,

lifnr like lfa1-lifnr,

bukrs like lfb1-bukrs,

ekorg like lfm1-ekorg,

ktokk like lfa1-ktokk,

name1 like lfa1-name1,

stras like lfa1-stras,

ort01 like lfa1-ort01,

regio like lfa1-regio,

pfort like lfa1-pfort,

pstlz like lfa1-pstlz,

pstl2 like lfa1-pstl2,

telf1 like lfa1-telf1,

color(3) type c,

*CELLCOLOR TYPE LVC_T_SCOL,

end of itab.

*SELECTION-SCREEN.

selection-screen: begin of block b1 with frame.

select-options: s_lifnr for lfa1-lifnr.

select-options: s_bukrs for lfb1-bukrs.

select-options: s_ekorg for lfm1-ekorg.

select-options: s_ktokk for lfa1-ktokk.

selection-screen: end of block b1.

parameters: r_list radiobutton group g1,

r_grid radiobutton group g1.

**AT SELECTION-SCREEN.

at selection-screen.

if not s_lifnr is initial.

select single lifnr

into v_lifnr

from lfa1

where lifnr in s_lifnr.

if sy-subrc <> 0.

message e001(zz1).

endif.

else.

message e005(zz1).

endif.

if not s_bukrs is initial.

select single bukrs

from t001

into v_bukrs

where bukrs in s_bukrs.

if sy-subrc <> 0.

message e002(zz1).

endif.

else.

message e006(zz1).

endif.

if not s_ekorg is initial.

select single ekorg

from t024e

into v_ekorg

where ekorg in s_ekorg.

if sy-subrc <> 0.

message e003(zz1).

endif.

else.

message e007(zz1).

endif.

if not s_ktokk is initial.

select single ktokk

from t077k

into v_ktokk

where ktokk in s_ktokk.

if sy-subrc <> 0.

message e008(zz1).

endif.

else.

message e008(zz1).

endif.

***start of selection.

start-of-selection.

v_repid = sy-repid.

perform get_data.

****END OF SELECTION.

end-of-selection.

perform get_field_catalog.

*PERFORM BUILD_FIELDCAT.

if r_list = 'X'.

perform list_display.

else.

perform grid_display.

endif.

&----


*& Form GET_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_data .

select lfa1~lifnr

lfb1~bukrs

lfm1~ekorg

lfa1~ktokk

lfa1~name1

lfa1~stras

lfa1~ort01

lfa1~regio

lfa1~pfort

lfa1~pstlz

lfa1~pstl2

lfa1~telf1

from lfa1 inner join lfb1 on lfa1lifnr = lfb1lifnr

inner join lfm1 on lfa1lifnr = lfm1lifnr

into corresponding fields of table itab

where lfa1~lifnr in s_lifnr.

endform. " GET_DATA

&----


*& Form GET_FIELD_CATALOG

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_field_catalog .

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = v_repid

i_internal_tabname = 'ITAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = v_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

changing

ct_fieldcat = itab_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. " GET_FIELD_CATALOG

&----


*& Form LIST_DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form list_display .

wa_layout-info_fieldname = 'COLOR'.

wa_layout-zebra = 'X'.

call function 'REUSE_ALV_LIST_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 = ' '

  • I_STRUCTURE_NAME =

is_layout = wa_layout

it_fieldcat = itab_fieldcat[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = 'A'

  • 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 = itab

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. " LIST_DISPLAY

&----


*& Form BUILD_FIELDCAT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form build_fieldcat .

itab_fieldcat-col_pos = 0.

itab_fieldcat-fieldname = 'LIFNR'.

itab_fieldcat-key = 'X'.

itab_fieldcat-emphasize = 'X'.

itab_fieldcat-outputlen = '10'.

itab_fieldcat-seltext_l = 'VENDOR'(009).

append itab_fieldcat.

clear itab_fieldcat.

itab_fieldcat-col_pos = 1.

itab_fieldcat-fieldname = 'BUKRS'.

itab_fieldcat-key = 'X'.

itab_fieldcat-emphasize = 'X'.

itab_fieldcat-outputlen = '4'.

itab_fieldcat-seltext_l = 'COMPANY CODE'(010).

append itab_fieldcat.

clear itab_fieldcat.

itab_fieldcat-col_pos = 2.

itab_fieldcat-fieldname = 'EKORG'.

itab_fieldcat-key = 'X'.

itab_fieldcat-emphasize = 'X'.

itab_fieldcat-outputlen = '4'.

itab_fieldcat-seltext_l = 'PURCHASING ORG'(011).

append itab_fieldcat.

clear itab_fieldcat.

itab_fieldcat-col_pos = 3.

itab_fieldcat-fieldname = 'KTOKK'.

itab_fieldcat-outputlen = '4'.

itab_fieldcat-seltext_l = 'ACCOUNT GRP'(012).

itab_fieldcat-emphasize = 'X'.

append itab_fieldcat.

clear itab_fieldcat.

itab_fieldcat-col_pos = 4.

itab_fieldcat-fieldname = 'NAME1'.

itab_fieldcat-outputlen = '12'.

itab_fieldcat-emphasize = 'X'.

itab_fieldcat-seltext_l = 'VENDOR NAME'(013).

append itab_fieldcat.

clear itab_fieldcat.

itab_fieldcat-col_pos = 5.

itab_fieldcat-fieldname = 'STRAS'.

itab_fieldcat-emphasize = 'X'.

itab_fieldcat-outputlen = '12'.

itab_fieldcat-seltext_l = 'STREET'(014).

append itab_fieldcat.

clear itab_fieldcat.

itab_fieldcat-col_pos = 6.

itab_fieldcat-fieldname = 'ORT01'.

itab_fieldcat-outputlen = '12'.

itab_fieldcat-emphasize = 'X'.

itab_fieldcat-seltext_l = 'CITY'(015).

append itab_fieldcat.

clear itab_fieldcat.

itab_fieldcat-col_pos = 7.

itab_fieldcat-fieldname = 'REGIO'.

itab_fieldcat-outputlen = '2'.

itab_fieldcat-emphasize = 'X'.

itab_fieldcat-seltext_l = 'REGION'(016).

append itab_fieldcat.

clear itab_fieldcat.

itab_fieldcat-col_pos = 8.

itab_fieldcat-fieldname = 'PFORT'.

itab_fieldcat-outputlen = '10'.

itab_fieldcat-emphasize = 'X'.

itab_fieldcat-seltext_l = 'PO BOX'(017).

append itab_fieldcat.

clear itab_fieldcat.

itab_fieldcat-col_pos = 9.

itab_fieldcat-fieldname = 'PFTLZ'.

itab_fieldcat-emphasize = 'X'.

itab_fieldcat-outputlen = '10'.

itab_fieldcat-seltext_l = 'POST CODE'(018).

append itab_fieldcat.

clear itab_fieldcat.

itab_fieldcat-col_pos = 10.

itab_fieldcat-fieldname = 'PSTL2'.

itab_fieldcat-outputlen = '10'.

itab_fieldcat-seltext_l = 'PO ZIP'(019).

append itab_fieldcat.

clear itab_fieldcat.

itab_fieldcat-col_pos = 11.

itab_fieldcat-fieldname = 'TELF1'.

itab_fieldcat-outputlen = '16'.

itab_fieldcat-seltext_l = 'TELEPHONE'(020).

append itab_fieldcat.

clear itab_fieldcat.

*L_POS = L_POS + 1.

*DATA: LS_CELLCOLOR TYPE LVC_S_SCOL.

*DATA: L_INDEX TYPE SY-TABIX.

*

*LOOP AT ITAB.

  • L_INDEX = SY-TABIX.

  • if l_index = 1 or l_index = 10.

  • LS_CELLCOLOR-FNAME = 'VBELN'.

  • LS_CELLCOLOR-COLOR-COL = '6'.

  • LS_CELLCOLOR-COLOR-INT = '1'.

  • APPEND LS_CELLCOLOR TO ITAB-CELLCOLOR.

  • MODIFY ITAB INDEX L_INDEX TRANSPORTING CELLCOLOR.

  • endif.

  • if l_index = 5 or l_index = 20.

  • LS_CELLCOLOR-FNAME = 'VBELN'.

  • LS_CELLCOLOR-COLOR-COL = '4'.

  • LS_CELLCOLOR-COLOR-INT = '1'.

  • APPEND LS_CELLCOLOR TO ITAB-CELLCOLOR.

  • MODIFY ITAB INDEX L_INDEX TRANSPORTING CELLCOLOR.

  • endif.

*ENDLOOP.

endform. " BUILD_FIELDCAT

&----


*& Form GRID_DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form grid_display .

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

  • 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 = itab_fieldcat[]

  • 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 = itab

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

hope this helps,

priya.