‎2008 Jan 05 2:45 AM
Hi,
I need coding for writing the headings for ALV GRID DISPLAY
AND INTERACTIVE ALV GRID DISPLAY
could anybody pls help me over this
‎2008 Jan 05 4:43 AM
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.
‎2008 Jan 05 4:51 AM
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
‎2008 Jan 05 4:57 AM
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