Anda di halaman 1dari 11

Hi Mohnish,

You can refer the following ALV sample code :

TYPE-POOLS: slis.

TABLES : afko,afpo .

+--

Data declarations--
+
DATA : BEGIN OF it_afpo OCCURS 0,

AUFNR LIKE afpo-AUFNR,

PSMNG LIKE afpo-PSMNG,

WEMNG LIKE afpo-WEMNG,

PWERK LIKE afpo-PWERK,

DAUAT LIKE afpo-DAUAT,

END OF it_afpo.

DATA : BEGIN OF it_afko OCCURS 0,

AUFNR LIKE afko-AUFNR,

GSTRP LIKE afko-GSTRP,

GSTRS LIKE afko-GSTRS,

GSTRI LIKE afko-GSTRI,

GSUZI LIKE afko-GSUZI,

PLNBEZ LIKE AFKO-PLNBEZ,

END OF it_afko.

DATA : BEGIN OF it_makt OCCURS 0,

matnr TYPE matnr,

maktx TYPE maktx,

END OF it_makt.

DATA : BEGIN OF it_output OCCURS 0,

AUFNR LIKE afpo-AUFNR,

PSMNG LIKE afpo-PSMNG,

WEMNG LIKE afpo-WEMNG,

DAUAT LIKE afpo-DAUAT,


GSTRP LIKE afko-GSTRP,

GSTRS LIKE afko-GSTRS,

GSTRI LIKE afko-GSTRI,

GSUZI LIKE afko-GSUZI,

PLNBEZ LIKE AFKO-PLNBEZ,

matnr LIKE makt-matnr,

maktx LIKE makt-maktx,

END OF it_output.

DATA: wa_output LIKE it_output,

wa_afpo LIKE it_afpo,

wa_afko LIKE it_afko,

wa_makt like it_makt.

DATA : wk_date1(10) TYPE c,

wk_date2(10) TYPE c,

wk_datehead TYPE string.

+--

Selection screen parameters--


+
INITIALIZATION.

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

SELECT-OPTIONS: s_matnr FOR afpo-matnr.

PARAMETERS : p_pwerk type afpo-pwerk OBLIGATORY.

SELECT-OPTIONS: s_dauat for afpo-dauat OBLIGATORY,

s_gstrp for afko-GSTRP OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

--

internal tables for alv--


DATA : gt_fieldcat TYPE slis_t_fieldcat_alv, "catalog for alv

gt_heading TYPE slis_t_listheader, "list for header1

gt_sort TYPE slis_t_sortinfo_alv, "Sorting of the

gt_event TYPE slis_t_event,


gt_selfield TYPE slis_selfield,

gv_alv_event TYPE slis_alv_event,

gv_repname TYPE sy-repid,

gs_layout TYPE slis_layout_alv,

gv_save TYPE c.

CONSTANTS gc_forname_top_of_page TYPE slis_formname VALUE

'TOP-OF-PAGE'.

START-OF-SELECTION.

PERFORM get_data.

PERFORM output_data.

PERFORM build_comment USING gt_heading[].

PERFORM eventstab.

PERFORM sub_t_sort_build.

PERFORM build_field_catalog.

PERFORM display_data.

--

Data selection--
&----

*& Form get_data

&----

text

----

--> p1 text

<-- p2 text

----

FORM get_data.

select AUFNR

PSMNG

WEMNG

MATNR
PWERK

DAUAT

from afpo CLIENT SPECIFIED

INTO TABLE it_afpo

WHERE mandt = sy-mandt

AND matnr IN s_matnr

and pwerk = p_pwerk

and dauat in s_dauat.

select AUFNR

GSTRP

GSTRS

GSTRI

GSUZI

PLNBEZ

from afko CLIENT SPECIFIED

INTO table it_afko

FOR ALL ENTRIES IN it_afpo

WHERE mandt = sy-mandt

AND aufnr = it_afpo-aufnr

and gstrp in s_gstrp.

SELECT matnr

maktx

FROM makt

INTO table it_makt

FOR ALL ENTRIES IN it_afKo

WHERE matnr = it_afKo-PLNBEZ.

ENDFORM. " get_data

&----

*& Form output_data


&----

text

----

--> p1 text

<-- p2 text

----

FORM output_data.

loop at it_afko into wa_afko.

LOOP AT it_afpo into wa_afpo

WHERE aufnr = wa_afKo-aufnr.

wa_output-AUFNR = wa_afpo-AUFNR.

wa_output-PSMNG = wa_afpo-PSMNG.

wa_output-WEMNG = wa_afpo-WEMNG.

wa_output-DAUAT = wa_afpo-DAUAT.

ENDLOOP.

loop at it_makt into wa_makt

where matnr = wa_afKo-PLNBEZ.

wa_output-matnr = wa_makt-matnr.

wa_output-maktx = wa_makt-maktx.

endloop.

wa_output-GSTRP = wa_afko-GSTRP.

wa_output-GSTRS = wa_afko-GSTRS.

wa_output-GSTRI = wa_afko-GSTRI.

wa_output-GSUZI = wa_afko-GSUZI.

APPEND wa_output TO it_output.

ENDLOOP.

CLEAR wa_afpo.

CLEAR wa_afko.

CLEAR wa_output.

SORT IT_OUTPUT BY GSTRP GSUZI.


ENDFORM. " output_data

--

Header for ALV--


*&----

*& Form build_comment

*&----

text

*----

-->P_GT_HEADING[] text

*----

FORM build_comment USING p_heading TYPE slis_t_listheader.

DATA : ls_header TYPE slis_listheader.

*--poputale the report header info

ls_header-typ = 'H'.

MOVE : text-002 TO ls_header-info.

APPEND ls_header TO p_heading.

CLEAR ls_header.

ls_header-typ = 'S'.

ls_header-key = text-013 .

"'User:'

ls_header-info = sy-uname.

APPEND ls_header TO p_heading.

CLEAR: ls_header.

ENDFORM. " build_comment


&----

*& Form eventstab

&----

text

----

--> p1 text

<-- p2 text

----

FORM eventstab.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = gt_event

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 gt_event

WITH KEY name = slis_ev_top_of_page

INTO gv_alv_event.

IF sy-subrc EQ 0.

MOVE gc_forname_top_of_page TO gv_alv_event-form.

APPEND gv_alv_event TO gt_event.

ENDIF.

ENDFORM. " eventstab


&----

*& Form build_field_catalog

&----

text

----

--> p1 text

<-- p2 text

----

FORM build_field_catalog.

DATA ls_fieldcat TYPE slis_fieldcat_alv.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 1.

ls_fieldcat-fieldname = 'DAUAT'.

ls_fieldcat-outputlen = 12.

ls_fieldcat-tabname = 'it_output'.

ls_fieldcat-seltext_l = 'Order Type'.

ls_fieldcat-KEY = 'X'.

APPEND ls_fieldcat TO gt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 2.

ls_fieldcat-fieldname = 'AUFNR'.

ls_fieldcat-outputlen = 10.

ls_fieldcat-tabname = 'it_output'.

ls_fieldcat-seltext_l = 'Order Number'.

APPEND ls_fieldcat TO gt_fieldcat.

CLEAR ls_fieldcat.

ls_fieldcat-col_pos = 3.

ls_fieldcat-fieldname = 'MATNR'.

ls_fieldcat-outputlen = 12.

ls_fieldcat-tabname = 'it_output'.
ls_fieldcat-seltext_l = 'Material Number'.

APPEND ls_fieldcat TO gt_fieldcat.

----

you can add fields as per your requirement.*----


*

ENDFORM. " build_field_catalog

*----

*-*

*-- Form top of page

*----

FORM top-of-page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = gt_heading.

ENDFORM. "TOP-OF-PAGE

&----

*& Form display_data

&----

text

----

--> p1 text

<-- p2 text

----

FORM display_data.

gv_save = 'A'.

gv_repname = sy-repid.

gs_layout-colwidth_optimize = 'X'.

gs_layout-zebra = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING

i_callback_program = gv_repname

is_layout = gs_layout

it_sort = gt_sort[]

it_fieldcat = gt_fieldcat[]

i_default = 'X'

i_save = gv_save

it_events = gt_event[]

TABLES

t_outtab = it_output

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_data

&----

*& Form sub_t_sort_build

&----

text

----

--> p1 text

<-- p2 text

----

FORM sub_t_sort_build.

DATA ls_sort TYPE slis_sortinfo_alv.

ls_sort-spos = 1.
ls_sort-tabname = 'it_output'.

ls_sort-fieldname = 'DAUAT'.

ls_sort-subtot = 'X'.

ls_sort-up = 'X'.

ls_sort-group = '*'.

APPEND ls_sort TO gt_sort.

ENDFORM. " sub_t_sort_build

Reward points, if helpful

Regards,

Ramneet

Anda mungkin juga menyukai