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

ALVs

Former Member
0 Likes
486

Hi,

I need coding for writing the headings for ALV GRID DISPLAY

AND INTERACTIVE ALV GRID DISPLAY

could anybody pls help me over this

3 REPLIES 3
Read only

Former Member
0 Likes
460

Hi,

in ALV heading can be achieved by writing form top_of_page with commentry write function module.

ex-

DATA : ITHEAD TYPE SLIS_T_LISTHEADER,

WAITHEAD TYPE SLIS_T_LISTHEADER.

var1 type c length 30.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = 'u r program name'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE_TLD'

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = I_FIELDCAT.

FORM TOP_OF_PAGE_TLD.

CLEAR : ITHED[].

SHED-TYP = 'H'.

SHED-INFO = ‘vijay group of indusries'.

APPEND SHED TO ITHED.

CLEAR SHED.

SHED-TYP = 'H'.

concatenate 'from date '12/09/2007' to 'date'sy-datum into var1.

SHED-INFO = var1.

APPEND SHED TO ITHED.

CLEAR SHED.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = ITHED

REFRESH ITHED.

ENDFORM.

output:- vijay group of industries

from date to date.

Read only

Former Member
0 Likes
460

Hi Nag,

I will send a entire code for ur problem check it once..

I use LIST DISPLAY. U can change that to grid display.I only change u do is change the function module reuse_alv_list_display to reuse_alv_grid_dispaly ok..

Just cpy and execute the below program and analyze it ok..

&----


*& Report YPURCHASEORDER_ALV_LISTDISP *

*& *

&----


*& DEVELOPER : KIRAN KUMAR.G *

& PURPOSE : CREATING A PURCHASE ORDER BASED ON PURCHASE DOC NUMBER

*& CREATION DT: 22/11/2007 *

*& REQUEST : ERPK900035 *

&----


REPORT YPURCHASEORDER_ALV_LISTDISP.

----


  • Tables

----


TABLES : ekko, "Purchasing Document Header

ekpo. "Purchasing Document Item

----


  • Type pools

----


TYPE-POOLS: slis.

----


  • Internal Tables

----


DATA: BEGIN OF gt_headerdat OCCURS 0,

ebeln LIKE ekko-ebeln, " Purchasing Document Number

bukrs LIKE ekko-bukrs, " Company Code

bstyp LIKE ekko-bstyp, " Purchasing Document Category

bsart LIKE ekko-bsart, " Purchasing Document LIKE

aedat LIKE ekko-aedat, " Date on which the recordwascreate

ernam LIKE ekko-ernam, " Name of Person who Created Object

lifnr LIKE ekko-lifnr, " Vendor's account number

spras LIKE ekko-spras, " Language Key

ekorg LIKE ekko-ekorg, " Purchasing Organization

ekgrp LIKE ekko-ekgrp, " Purchasing group

END OF gt_headerdat.

DATA: BEGIN OF gt_item OCCURS 0,

matnr LIKE ekpo-matnr, "Material Number

werks LIKE ekpo-werks, "Plant

lgort LIKE ekpo-lgort, "Storage location

matkl LIKE ekpo-matkl, "Material group

menge LIKE ekpo-menge, "Purchase order quantity

meins LIKE ekpo-meins, "Order unit

netpr LIKE ekpo-netpr, "Net price in purchasing document

kunnr LIKE ekpo-kunnr, "Customer Number 1

END OF gt_item.

----


  • Global Structures

----


DATA: gt_header TYPE slis_t_listheader, "For Headings

wa_header TYPE slis_listheader,

gt_fieldcat TYPE slis_t_fieldcat_alv, "Structure Defintion

wa_fieldcat TYPE slis_fieldcat_alv,

gt_fieldcat1 TYPE slis_t_fieldcat_alv,

wa_fieldcat1 TYPE slis_fieldcat_alv,

wa_layout TYPE slis_layout_alv, "Layout

gt_events TYPE slis_t_event, "For Events

wa_events TYPE slis_alv_event.

----


  • Selection Screen

----


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

SELECT-OPTIONS : s_ebeln FOR ekko-ebeln.

SELECTION-SCREEN: END OF BLOCK b1.

----


  • Initialization

----


INITIALIZATION.

PERFORM initial.

----


  • Fetch Data

----


START-OF-SELECTION.

PERFORM fetch_data.

END-OF-SELECTION.

  • Bulid fieldcatalog

PERFORM fieldcat.

  • Change fieldcatalog

PERFORM fieldcat_change.

  • Events Triggering

PERFORM place_events.

  • Layout.

PERFORM layout.

----


  • Display Data

----


SORT gt_headerdat BY ebeln.

PERFORM display_list.

&----


*& Form initial

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM initial .

s_ebeln-sign = 'I'.

s_ebeln-option = 'BT'.

s_ebeln-low = '3000000090'.

s_ebeln-high = '3000000166'.

APPEND s_ebeln.

ENDFORM. " initial

&----


*& Form fetch_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fetch_data .

REFRESH gt_headerdat. "Clear the Body of Internal Table

CLEAR gt_headerdat. "Clear Header Line

SELECT ebeln

bukrs

bstyp

bsart

aedat

ernam

lifnr

spras

ekorg

ekgrp

FROM ekko

INTO TABLE gt_headerdat

WHERE ebeln IN s_ebeln.

ENDFORM. " fetch_data

&----


*& Form display_list

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_list .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = sy-cprog

  • I_CALLBACK_PF_STATUS_SET = ' '

i_callback_user_command = 'USERCOMMAND'

  • I_STRUCTURE_NAME =

is_layout = wa_layout

it_fieldcat = gt_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

it_events = gt_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 = gt_headerdat

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_list

&----


*& Form place_events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM place_events .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = gt_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.

CLEAR wa_events. "Clear Header Line

READ TABLE gt_events INTO wa_events WITH KEY name = 'TOP_OF_PAGE'.

IF sy-subrc = 0.

wa_events-form = 'HEADING'.

MODIFY gt_events FROM wa_events INDEX sy-tabix.

ENDIF.

CLEAR wa_events. "Clear Header Line

READ TABLE gt_events INTO wa_events WITH KEY name = 'END_OF_LIST'.

IF sy-subrc = 0.

wa_events-form = 'PAGEDOWN'.

MODIFY gt_events FROM wa_events INDEX sy-tabix.

ENDIF.

CLEAR wa_events. "Clear Header Line

READ TABLE gt_events INTO wa_events WITH KEY name = 'USER_COMMAND'.

IF sy-subrc = 0.

wa_events-form = 'USERCOMMAND'.

MODIFY gt_events FROM wa_events INDEX sy-tabix.

ENDIF.

ENDFORM. " place_events

&----


*& Form layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM layout .

CLEAR wa_layout. "Clear Header Line

wa_layout-zebra = 'X'. "Zebra Lines in the Output

wa_layout-colwidth_optimize = 'X'. "Optimize the Column Width

ENDFORM. " layout

&----


*& Form heading

&----


  • text

----


FORM heading.

WRITE:/6 'THIS REPORT DISPLAYS THE PURCHASE ORDER DETAILS'.

WRITE:/6 'CLICK ON PURCHASE DOC NO FIELD(INTERACTIVE LIST)'.

ENDFORM. "heading

&----


*& Form fieldcat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fieldcat .

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = SY-CPROG

i_internal_tabname = 'GT_HEADERDAT'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = SY-CPROG

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = gt_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. " fieldcat

&----


*& Form fieldcat_change

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fieldcat_change .

LOOP AT gt_fieldcat INTO wa_fieldcat.

CASE wa_fieldcat-fieldname.

WHEN 'EBELN'.

wa_fieldcat-hotspot = 'X'.

ENDCASE.

MODIFY gt_fieldcat FROM wa_fieldcat INDEX sy-tabix.

ENDLOOP.

ENDFORM. " fieldcat_change

&----


*& Form pagedown

&----


  • text

----


FORM pagedown.

WRITE:/35 'HAVE A NICE DAY...' COLOR 4.

ENDFORM. "pagedown

&----


*& Form usercommand

&----


  • text

----


  • -->UCOMM text

  • -->SELFIELD text

----


FORM usercommand USING ucomm LIKE sy-ucomm selfield TYPE slis_selfield.

READ TABLE gt_headerdat INDEX selfield-tabindex.

CASE selfield-sel_tab_field.

WHEN 'GT_HEADERDAT-EBELN'.

REFRESH : gt_item.

CLEAR : gt_item.

SELECT matnr

werks

lgort

matkl

menge

meins

netpr

kunnr

FROM ekpo

INTO TABLE gt_item

WHERE ekpo~ebeln EQ gt_headerdat-ebeln.

*Build a Field Catalog

PERFORM fieldcat1.

*For Heading in the Interactive List

PERFORM heading1.

*Display Interactive Data

PERFORM display_data1.

ENDCASE.

ENDFORM. "usercommand

&----


*& Form fieldcat1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fieldcat1 .

REFRESH : gt_fieldcat1.

CLEAR : wa_fieldcat1.

wa_fieldcat1-col_pos = '1'. "Column Postion

wa_fieldcat1-fieldname = 'MATNR'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal Table

wa_fieldcat1-key = 'X'. "Blue Color

wa_fieldcat1-seltext_l = 'MATERIAL NO'. "Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

wa_fieldcat1-col_pos = '2'. "Column Postion

wa_fieldcat1-fieldname = 'WERKS'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal Table

wa_fieldcat1-seltext_l = 'PLANT'. "Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

wa_fieldcat1-col_pos = '3'. "Column Postion

wa_fieldcat1-fieldname = 'LGORT'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal Table

wa_fieldcat1-seltext_l = 'STORAGE LOCATION'."Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

wa_fieldcat1-col_pos = '4'. "Column Postion

wa_fieldcat1-fieldname = 'MATKL'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal Table

wa_fieldcat1-seltext_l = 'MATERIAL GRP'. "Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

wa_fieldcat1-col_pos = '5'. "Column Postion

wa_fieldcat1-fieldname = 'MENGE'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal TAble

wa_fieldcat1-seltext_l = 'PO QUANTITY'. "Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

wa_fieldcat1-col_pos = '6'. "Column Pos tion

wa_fieldcat1-fieldname = 'MEINS'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal TAble

wa_fieldcat1-seltext_l = 'BASE UNIT MEASURE'."Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

wa_fieldcat1-col_pos = '7'. "Column Postion

wa_fieldcat1-fieldname = 'NETPR'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal Table

wa_fieldcat1-seltext_l = 'NET PRICE'. "Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

wa_fieldcat1-col_pos = '8'. "Column Postion

wa_fieldcat1-fieldname = 'KUNNR'. "Field Name

wa_fieldcat1-tabname = 'GT_ITEM'. "Internal Table

wa_fieldcat1-seltext_l = 'CUSTOMER NO'. "Display Text Screen

APPEND wa_fieldcat1 TO gt_fieldcat1.

CLEAR wa_fieldcat1.

ENDFORM. " fieldcat1

&----


*& Form heading1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM heading1 .

REFRESH : gt_header.

CLEAR : wa_header.

wa_header-typ = 'H'.

wa_header-info = 'THIS IS AN INTERACTIVE LIST'.

APPEND wa_header TO gt_header.

ENDFORM. " heading1

&----


*& Form top

&----


  • text

----


FORM top.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = gt_header

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "top

&----


*& Form display_data1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_data1 .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = SY-CPROG

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

i_callback_top_of_page = 'TOP'

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

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

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_data1

Award points if helpful.

Kiran Kumar.G

+ Have a Nice Day..+

Edited by: KIRAN KUMAR on Jan 5, 2008 5:51 AM

Read only

Former Member
0 Likes
460

Hi Nag,

you can have look on this below code, it is a small report, you can easyly understand..

&----


*& Report ZTEVR058 *

*& *

&----


*& *

*& *

&----


REPORT ztevr058 NO STANDARD PAGE HEADING

MESSAGE-ID zibeam.

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

*TYPE POOLS

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

TYPE-POOLS: slis.

*&----


*& Tables Declaration

*&----


TABLES:zsd_pa_hdr,zsd_pa_dtl.

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

*Global Constants

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

CONSTANTS:c_top_of_page(15) TYPE c VALUE 'SUB_TOP_OF_PAGE', "#EC NOTEXT

c_chk(1) TYPE c VALUE 'X', "check

c_save(1) TYPE c VALUE 'A', "save

c_final(15) TYPE c VALUE 't_sd_pa_dtl',

c_header TYPE char1 VALUE 'H', "Header in ALV

c_item TYPE char1 VALUE 'S'. "Item in ALV

*&----


*& Work area Declaration

*&----


  • To define alv layout structure

DATA: w_layout TYPE slis_layout_alv,

  • Work area For variant

w_print TYPE slis_print_alv,

  • Work area For Detail table

w_zsd_pa_dtl TYPE zsd_pa_dtl,

  • Work area For variant

w_variant TYPE disvariant,

  • Work area For variant

w_variant1 TYPE disvariant,

  • Work area For header table

w_zsd_pa_hdr TYPE zsd_pa_hdr,

  • Work area For field catalog

w_catlog TYPE slis_fieldcat_alv,

  • Work area For field catalog1

w_catlog1 TYPE slis_fieldcat_alv.

*&----


*& Internal tables Declaration

*&----


DATA:

  • For ALV events

t_events TYPE slis_t_event,

  • For ALV top of page

t_alv_top_of_page TYPE slis_t_listheader,

  • For Field catalog

t_catlog TYPE slis_t_fieldcat_alv,

  • For Field catalog

t_catlog1 TYPE slis_t_fieldcat_alv,

    • For header table

t_zsd_pa_hdr TYPE STANDARD TABLE OF zsd_pa_hdr INITIAL SIZE 0,

  • For Detail table

t_zsd_pa_dtl TYPE STANDARD TABLE OF zsd_pa_dtl INITIAL SIZE 0.

  • t_zsd_pa_hdr LIKE zsd_pa_hdr OCCURS 0,

*

  • t_zsd_pa_dtl LIKE zsd_pa_dtl OCCURS 0.

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

*Global Variables

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

DATA: w_repid TYPE sy-repid. "Report ID

*&----


*& Selection Screen Declaration

*&----


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

PARAMETERS: p_matnr TYPE zsd_pa_hdr-matnr OBLIGATORY.

SELECTION-SCREEN: END OF BLOCK b1.

SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

SELECT-OPTIONS: s_kunwe FOR zsd_pa_dtl-kunwe,

s_kunag FOR zsd_pa_dtl-kunag,

s_bzirk FOR zsd_pa_dtl-bzirk,

s_regio1 FOR zsd_pa_dtl-regio1,

s_regio2 FOR zsd_pa_dtl-regio2,

s_land1 FOR zsd_pa_dtl-land1.

SELECTION-SCREEN: END OF BLOCK b2.

SELECTION-SCREEN: BEGIN OF BLOCK b3 WITH FRAME TITLE text-020.

PARAMETERS: p_varnt TYPE slis_vari. " Variant

SELECTION-SCREEN: END OF BLOCK b3.

----


  • INITIALIZATION

----


INITIALIZATION.

w_repid = sy-repid.

  • To variant initialize

PERFORM sub_variant_int.

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

  • AT SELECTION-SCREEN ON VALUE-REQUEST

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

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varnt.

  • Display List of Variants on pressing F4

PERFORM sub_f4_for_variant.

----


  • AT SELECTION-SCREEN

----


AT SELECTION-SCREEN.

  • For check variant

PERFORM sub_check_variant.

----


  • START-OF-SELECTION

----


START-OF-SELECTION.

PERFORM sub_get_zsd_pa_hdr_data.

PERFORM sub_get_zsd_pa_dtl_data.

----


  • END-OF-SELECTION.

----


END-OF-SELECTION.

  • To create header.

PERFORM sub_bulid_header.

  • To create events.

PERFORM sub_create_events.

  • to print parameter

PERFORM build_print_para.

  • To create layout

PERFORM sub_create_layout.

  • For generating ALV Report

PERFORM sub_alv_report.

&----


*& Form sub_variant_int

&----


  • text

----


FORM sub_variant_int .

CLEAR w_variant.

w_variant-report = w_repid.

  • Determine the default Variant

PERFORM sub_get_default_variant.

ENDFORM. " sub_variant_int

&----


*& Form sub_check_variant

&----


  • To check variant

----


FORM sub_check_variant.

IF NOT p_varnt IS INITIAL.

CLEAR w_variant1.

MOVE w_variant TO w_variant1.

MOVE p_varnt TO w_variant1-variant.

  • This function module for check the variant exist

CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'

EXPORTING

i_save = c_save

CHANGING

cs_variant = w_variant1.

w_variant = w_variant1.

ENDIF.

ENDFORM. " SUB_CHECK_VARIANT

&----


*& Form sub_f4_for_variant

&----


  • Display List of Variants on pressing F4

----


FORM sub_f4_for_variant .

  • Local declaration

DATA: l_exit(1) TYPE c. "ALV exit

  • This function module for displaying list of Variants on pressing F4

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

EXPORTING

is_variant = w_variant

i_save = c_save

IMPORTING

e_exit = l_exit

es_variant = w_variant1

EXCEPTIONS

not_found = 1

program_error = 2.

IF sy-subrc <> 2 AND l_exit IS INITIAL.

p_varnt = w_variant1-variant.

ENDIF.

ENDFORM. " sub_f4_for_variant

&----


*& Form sub_get_default_variant

&----


  • This subroutine is used to determine the default ALV Variant and

  • assign it to the parameter P_VARINT.

----


FORM sub_get_default_variant .

w_variant1 = w_variant.

  • This function module to get the default variant

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'

EXPORTING

i_save = c_save

CHANGING

cs_variant = w_variant1

EXCEPTIONS

wrong_input = 1

not_found = 2

program_error = 3

OTHERS = 4.

IF sy-subrc = 0.

p_varnt = w_variant1-variant.

ENDIF.

ENDFORM. " sub_get_default_variant

&----


*& Form sub_get_ZSD_PA_HDR_data

&----


  • text

----


FORM sub_get_zsd_pa_hdr_data .

SELECT SINGLE *

FROM zsd_pa_hdr

INTO CORRESPONDING FIELDS OF w_zsd_pa_hdr

WHERE matnr = p_matnr.

IF sy-subrc NE 0.

MESSAGE i090.

LEAVE LIST-PROCESSING.

ELSE.

APPEND w_zsd_pa_hdr TO t_zsd_pa_hdr.

CLEAR w_zsd_pa_hdr.

ENDIF.

ENDFORM. " sub_get_ZSD_PA_HDR_data

&----


*& Form SUB_GET_ZSD_PA_DTL_DATA

&----


  • text

----


FORM sub_get_zsd_pa_dtl_data .

SELECT *

FROM zsd_pa_dtl

INTO TABLE t_zsd_pa_dtl

WHERE matnr = p_matnr

AND kunwe IN s_kunwe

AND kunag IN s_kunag

AND bzirk IN s_bzirk

AND regio1 IN s_regio1

AND regio2 IN s_regio2

AND land1 IN s_land1.

IF sy-subrc NE 0.

MESSAGE i090.

LEAVE LIST-PROCESSING.

ENDIF.

ENDFORM. " SUB_GET_ZSD_PA_DTL_DATA

&----


*& Form sub_create_events

&----


  • For defining ALV Events

----


FORM sub_create_events .

  • Local variable for event

DATA: w_event TYPE slis_alv_event. "Events

  • Events for the ALV

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 1 "2

IMPORTING

et_events = t_events.

  • Sort by Name

SORT t_events BY name.

CLEAR w_event.

READ TABLE t_events INTO w_event WITH KEY name = slis_ev_top_of_page

BINARY SEARCH.

IF sy-subrc = 0.

MOVE c_top_of_page TO w_event-form.

MODIFY t_events FROM w_event TRANSPORTING form WHERE

name = slis_ev_top_of_page.

ENDIF.

CLEAR : w_event.

ENDFORM. " sub_create_events

&----


*& Form SUB_CREATE_COMMENTRY_WRITE

&----


  • text

----


FORM sub_bulid_header .

DATA: l_system TYPE char10 . " System id

DATA: l_r_line TYPE slis_listheader, " Hold list header

l_date TYPE char10, " Date

l_time TYPE char10, " Time

l_title(120) TYPE c. " Title

  • Title Display

l_r_line-typ = c_header. " header

l_title = sy-title.

l_r_line-info = l_title.

APPEND l_r_line TO t_alv_top_of_page.

CLEAR l_r_line.

  • Run date Display

l_r_line-typ = c_item. " Item

WRITE: sy-datum TO l_date MM/DD/YYYY.

l_r_line-key = 'Run Date :'(021).

l_r_line-info = l_date.

APPEND l_r_line TO t_alv_top_of_page.

CLEAR: l_r_line,

l_date.

  • Run time Display

l_r_line-typ = c_item. " Item

WRITE: sy-uzeit TO l_time USING EDIT MASK '__:__:__'.

l_r_line-key = 'Run Time :'(022).

l_r_line-info = l_time.

APPEND l_r_line TO t_alv_top_of_page.

CLEAR: l_r_line,

l_time.

  • User Display

l_r_line-typ = c_item. " Item

l_r_line-key = 'User :'(023).

l_r_line-info = sy-uname.

APPEND l_r_line TO t_alv_top_of_page.

CLEAR: l_r_line,

l_date.

CONCATENATE sy-sysid '-' sy-mandt INTO l_system .

  • System ID Display

l_r_line-typ = c_item. " Item

l_r_line-key = 'System :'(024) .

l_r_line-info = l_system.

APPEND l_r_line TO t_alv_top_of_page.

CLEAR: l_r_line.

ENDFORM. " sub_bulid_header

----


  • FORM sub_top_of_page

----


  • For defining Top Of Page

----


FORM sub_top_of_page. "#EC CALLED

  • This funcation module will diplay the top of the page

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = t_alv_top_of_page.

REFRESH:t_alv_top_of_page.

ENDFORM. "sub_a_top_of_page

&----


*& Form sub_create_layout

&----


  • For Create layout set

----


FORM sub_create_layout .

w_layout-box_tabname = c_final.

w_layout-no_input = c_chk.

w_layout-colwidth_optimize = c_chk.

w_layout-zebra = c_chk.

w_layout-cell_merge = c_chk.

ENDFORM. " sub_create_layout

----


  • Form BUILD_PRINT_PARA

----


  • To Setup print parameters

----


FORM build_print_para.

CONSTANTS: lc_3(1) TYPE c VALUE '3'. "Value 3

  • Set up the print paramters .

w_print-no_print_listinfos = c_chk. "Display no listinfos

w_print-reserve_lines = lc_3. "Lines reserved for footer

w_print-no_coverpage = c_chk. "No coverpage

ENDFORM. " build_print_para

&----


*& Form SUB_ALV_REPORT

&----


  • Preparing Catalog for Displaying ALV report

----


FORM sub_alv_report .

w_catlog-seltext_l = text-003. "Material Number

w_catlog-datatype = 'CHAR'.

w_catlog-outputlen = 18.

w_catlog-fieldname = 'MATNR'.

APPEND w_catlog TO t_catlog.

CLEAR w_catlog.

w_catlog-seltext_l = text-004. "Valid-From Date'.

w_catlog-datatype = 'DATS'.

w_catlog-outputlen = 8.

w_catlog-fieldname = 'DATAB'.

APPEND w_catlog TO t_catlog.

CLEAR w_catlog.

w_catlog-seltext_l = text-005. "Valid To Date

w_catlog-datatype = 'DATS'.

w_catlog-outputlen = 8.

w_catlog-fieldname = 'DATBI'.

APPEND w_catlog TO t_catlog.

CLEAR w_catlog.

w_catlog-seltext_l = text-006. "Product Allocation: Quota Amounts

w_catlog-datatype = 'INT4'.

w_catlog-outputlen = 10.

w_catlog-fieldname = 'QUOTA'.

APPEND w_catlog TO t_catlog.

CLEAR w_catlog.

w_catlog-seltext_l = text-007. "Product Allocation: Unallocated Quota

w_catlog-datatype = 'INT4'.

w_catlog-outputlen = 10.

w_catlog-fieldname = 'QUOTAIH'.

APPEND w_catlog TO t_catlog.

CLEAR w_catlog.

w_catlog-seltext_l = text-008. "Product Allocation: Cosumptions

w_catlog-datatype = 'INT4'.

w_catlog-outputlen = 10.

w_catlog-fieldname = 'CONSUMPTION'.

APPEND w_catlog TO t_catlog.

CLEAR w_catlog.

w_catlog1-seltext_l = text-003. "Material Number

w_catlog1-datatype = 'CHAR'.

w_catlog1-outputlen = 18.

w_catlog1-fieldname = 'MATNR'.

APPEND w_catlog1 TO t_catlog1.

CLEAR w_catlog1.

w_catlog1-seltext_l = text-010. "Ship-To Party

w_catlog1-datatype = 'CHAR'.

w_catlog1-outputlen = 10.

w_catlog1-fieldname = 'KUNWE'.

APPEND w_catlog1 TO t_catlog1.

CLEAR w_catlog1.

w_catlog1-seltext_l = text-011. "Sold-to party

w_catlog1-datatype = 'CHAR'.

w_catlog1-outputlen = 10.

w_catlog1-fieldname = 'KUNAG'.

APPEND w_catlog1 TO t_catlog1.

CLEAR w_catlog1.

w_catlog1-seltext_l = text-012. "Sales district

w_catlog1-datatype = 'CHAR'.

w_catlog1-outputlen = 6.

w_catlog1-fieldname = 'BZIRK'.

APPEND w_catlog1 TO t_catlog1.

CLEAR w_catlog1.

w_catlog1-seltext_l = text-013. "Customer State

w_catlog1-datatype = 'CHAR'.

w_catlog1-outputlen = 3.

w_catlog1-fieldname = 'REGIO1'.

APPEND w_catlog1 TO t_catlog1.

CLEAR w_catlog1.

w_catlog1-seltext_l = text-014. "Bailment Location

w_catlog1-datatype = 'CHAR'.

w_catlog1-outputlen = 3.

w_catlog1-fieldname = 'REGIO2'.

APPEND w_catlog1 TO t_catlog1.

CLEAR w_catlog1.

w_catlog1-seltext_l = text-015. "Country Key

w_catlog1-datatype = 'CHAR'.

w_catlog1-outputlen = 3.

w_catlog1-fieldname = 'LAND1'.

APPEND w_catlog1 TO t_catlog1.

CLEAR w_catlog1.

w_catlog1-seltext_l = text-004. "Valid-From Date

w_catlog1-datatype = 'DATS'.

w_catlog1-outputlen = 8.

w_catlog1-fieldname = 'DATAB'.

APPEND w_catlog1 TO t_catlog1.

CLEAR w_catlog1.

w_catlog1-seltext_l = text-005. "Valid-TO Date

w_catlog1-datatype = 'DATS'.

w_catlog1-outputlen = 8.

w_catlog1-fieldname = 'DATBI'.

APPEND w_catlog1 TO t_catlog1.

CLEAR w_catlog1.

w_catlog1-seltext_l = text-006. "Product Allocation: Quota Amounts

w_catlog1-datatype = 'INT4'.

w_catlog1-outputlen = 10.

w_catlog1-fieldname = 'QUOTA'.

APPEND w_catlog1 TO t_catlog1.

CLEAR w_catlog1.

w_catlog1-seltext_l = text-007. "Product Allocation: Quota Amounts

w_catlog1-datatype = 'INT4'.

w_catlog1-outputlen = 10.

w_catlog1-fieldname = 'CONSUMPTION'.

APPEND w_catlog1 TO t_catlog1.

CLEAR w_catlog1.

  • This function module for displaying the ALV report

DATA: w_repid TYPE sy-repid.

MOVE sy-repid TO w_repid.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

i_callback_program = w_repid.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = w_layout

it_fieldcat = t_catlog

i_tabname = 't_zsd_pa_hdr'

it_events = t_events[]

TABLES

t_outtab = t_zsd_pa_hdr.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = w_layout

it_fieldcat = t_catlog1

i_tabname = 't_zsd_pa_dtl'

it_events = t_events[]

TABLES

t_outtab = t_zsd_pa_dtl.

w_print-reserve_lines = 1.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

EXPORTING

is_print = w_print.

ENDFORM. " SUB_ALV_REPORT

Thanks,

Murali