Regarding Reuse_alv_commentary_write
Hi all,
I am having this much of requirement in out put as Top-Of-page.
I did this thing like below given code in classical report.
Now I am dling this in ALV.
Is it possible to get like this out put in ALV.
If, possible meand send the code for below requirement.
ULINE.
New-line no-scrolling.
WRITE:/40 'PLANNER GROUP WISE TAT REPORT'.
uline.
New-line no-scrolling.
WRITE:/39 'FROM:', S_ERDAT-LOW,
58 'TO:' , S_ERDAT-HIGH.
ULINE.
New-line no-scrolling.
WRITE:/ 'UNIT:',p_iwerk.
uline.
case 'X'.
when p_ordno.
New-line no-scrolling.
write 45 'ALL ORDER NUMBERS.'.
WHEN P_PEND.
New-line no-scrolling.
WRITE 45 'CURRENT.'.
WHEN P_BFORD.
New-line no-scrolling.
WRITE 45 'BROUGHT FORWARD ORDERS.'.
WHEN P_COMPL.
New-line no-scrolling.
WRITE 45 'COMPLETED.'.
ENDCASE.
ULINE.
Regards,
sarath
hi,
try this code,
*& Report ZPROGRAM
REPORT ZPROGRAM.
table declaration.
tables : zemployee, zdepartment,zproject.
*type-pools declaration
type-pools : slis , icon.
type specification
types : begin of ty_emp,
empid type zempid,
empname type zempname,
empaddress type zempaddress,
city type zcity,
ponumber type zponumber,
detid type zdeptid,
end of ty_emp.
types : begin of ty_dept,
detid type zdeptid,
deptname type zdeptname,
designation type zdesignation,
projectid type zprojectid,
end of ty_dept.
types : begin of ty_project,
projectid type zprojectid,
technology type ztechnology,
clientname type zclientname,
end of ty_project.
types : begin of ty_final,
empid type zempid,
empname type zempname,
empaddress type zempaddress,
city type zcity,
ponumber type zponumber,
detid type zdeptid,
deptname type zdeptname,
designation type zdesignation,
projectid type zprojectid,
technology type ztechnology,
clientname type zclientname,
average type p decimals 2,
end of ty_final.
table type specification.
types : tt_emp type standard table of ty_emp,
tt_dept type standard table of ty_dept,
tt_project type standard table of ty_project,
tt_final type standard table of ty_final.
work area creation.
data : wa_emp type ty_emp,
wa_dept type ty_dept,
wa_project type ty_project,
wa_final type ty_final.
internal table declaration
data : itab_emp type tt_emp,
itab_dept type tt_dept,
itab_project type tt_project,
itab_final type tt_final.
layout declaration
data : gd_layout type slis_layout_alv.
assigning current program name.
data : gd_repid like sy-repid.
gd_repid = sy-repid.
fieldcatalog declaration.
data : d_fieldcat type slis_t_fieldcat_alv,
d_fieldcat_wa type slis_fieldcat_alv.
header declaration.
data : t_header type slis_t_listheader,
wa_header type slis_listheader,
linecount(10) type c,
line(10) type c.
selection-screen.
selection-screen : begin of block blk1 with frame title text-001.
select-options : s_empid for zemployee-empid.
parameters : p_dname like zdepartment-deptname.
parameters : p_proid like zproject-projectid.
selection-screen : begin of line.
parameters : p_rad1 radiobutton group r1.
selection-screen comment 3(10) text-002.
parameters : p_rad2 radiobutton group r1.
selection-screen comment 16(10) text-003.
selection-screen : end of line.
parameters : chk1 as checkbox.
selection-screen : end of block blk1.
end of selection screen.
start of selection.
select empid empname empaddress city ponumber detid from zemployee into corresponding fields of table itab_emp where empid in s_empid.
if not itab_emp is initial.
select detid deptname designation projectid from zdepartment into corresponding fields of table itab_dept for all entries in itab_emp where detid = itab_emp-detid .
if not itab_dept is initial.
select projectid technology clientname from zproject into corresponding fields of table itab_project for all entries in itab_dept where projectid = itab_dept-projectid.
endif.
endif.
*end of selection.
populating data into itab_final from itab_emp.
loop at itab_emp into wa_emp.
wa_final-empid = wa_emp-empid.
wa_final-empname = wa_emp-empname.
wa_final-empaddress = wa_emp-empaddress.
wa_final-ponumber = wa_emp-ponumber.
wa_final-city = wa_emp-city.
wa_final-detid = wa_emp-detid.
append wa_final to itab_final.
clear wa_final.
endloop.
*populating data into itab_final from itab_dept and itab_project
loop at itab_final into wa_final.
read table itab_dept into wa_dept with key detid = wa_final-detid.
if sy-subrc = 0.
wa_final-deptname = wa_dept-deptname.
wa_final-designation = wa_dept-designation.
wa_final-projectid = wa_dept-projectid.
modify itab_final from wa_final transporting deptname designation projectid .
endif.
read table itab_project into wa_project with key projectid = wa_final-projectid.
if sy-subrc = 0.
wa_final-technology = wa_project-technology.
wa_final-clientname = wa_project-clientname.
modify itab_final from wa_final transporting technology clientname.
endif.
endloop.
if p_rad1 = 'X' or chk1 = 'X'.
d_fieldcat_wa-fieldname = 'EMPID'.
d_fieldcat_wa-seltext_l = 'Employee Id'.
d_fieldcat_wa-emphasize = 'X'.
d_fieldcat_wa-col_pos = 1.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'EMPNAME'.
d_fieldcat_wa-seltext_l = 'Employee Name'.
d_fieldcat_wa-emphasize = 'C710'.
d_fieldcat_wa-col_pos = 2.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'EMPADDRESS'.
d_fieldcat_wa-seltext_l = 'Employee Address'.
d_fieldcat_wa-emphasize = 'C710'.
d_fieldcat_wa-col_pos = 3.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'CITY'.
d_fieldcat_wa-seltext_l = 'City'.
d_fieldcat_wa-emphasize = 'C710'.
d_fieldcat_wa-col_pos = 4.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'PONUMBER'.
d_fieldcat_wa-seltext_l = 'Postal Number'.
d_fieldcat_wa-emphasize = 'C710'.
d_fieldcat_wa-col_pos = 5.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'DETID'.
d_fieldcat_wa-seltext_l = 'Department Id'.
d_fieldcat_wa-emphasize = 'X'.
d_fieldcat_wa-col_pos = 6.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'DEPTNAME'.
d_fieldcat_wa-seltext_l = 'Department Name'.
d_fieldcat_wa-emphasize = 'C710'.
d_fieldcat_wa-col_pos = 7.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'DESIGNATION'.
d_fieldcat_wa-seltext_l = 'Designation'.
d_fieldcat_wa-emphasize = 'C710'.
d_fieldcat_wa-col_pos = 8.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'PROJECTID'.
d_fieldcat_wa-seltext_l = 'Project Id'.
d_fieldcat_wa-emphasize = 'X'.
d_fieldcat_wa-col_pos = 9.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'TECHNOLOGY'.
d_fieldcat_wa-seltext_l = 'technology'.
d_fieldcat_wa-emphasize = 'C710'.
d_fieldcat_wa-col_pos = 10.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'CLIENTNAME'.
d_fieldcat_wa-seltext_l = 'Client Name'.
d_fieldcat_wa-emphasize = 'C710'.
d_fieldcat_wa-col_pos = 11.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
endif.
if p_rad2 = 'X' or chk1 = 'X'.
refresh itab_emp.
d_fieldcat_wa-fieldname = 'DETID'.
d_fieldcat_wa-seltext_l = 'Department Id'.
d_fieldcat_wa-emphasize = 'C710'.
d_fieldcat_wa-col_pos = 6.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'DEPTNAME'.
d_fieldcat_wa-seltext_l = 'Department Name'.
d_fieldcat_wa-emphasize = 'C710'.
d_fieldcat_wa-col_pos = 7.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'DESIGNATION'.
d_fieldcat_wa-seltext_l = 'Designation'.
d_fieldcat_wa-emphasize = 'C710'.
d_fieldcat_wa-col_pos = 8.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'PROJECTID'.
d_fieldcat_wa-seltext_l = 'Project Id'.
d_fieldcat_wa-emphasize = 'C710'.
d_fieldcat_wa-col_pos = 9.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'TECHNOLOGY'.
d_fieldcat_wa-seltext_l = 'technology'.
d_fieldcat_wa-emphasize = 'C710'.
d_fieldcat_wa-col_pos = 10.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'CLIENTNAME'.
d_fieldcat_wa-seltext_l = 'Client Name'.
d_fieldcat_wa-emphasize = 'C710'.
d_fieldcat_wa-col_pos = 11.
append d_fieldcat_wa to d_fieldcat.
clear d_fieldcat_wa.
endif.
Grid display function module
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = gd_repid
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'EMPLOYEE DETAILS'
I_GRID_SETTINGS =
IS_LAYOUT = gd_layout
IT_FIELDCAT = d_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
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = itab_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.
set pf_status for creating client specified icons.
form set_pf_status using rt_extab type slis_t_extab.
set pf-status 'NEWSTATUS'.
endform.
populating data into header using top_of_page
form top_of_page.
wa_header-typ = 'H'.
wa_header-info = 'ALV REPORT'.
append wa_header to t_header.
clear wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Date :'.
Concatenate sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) into wa_header-info.
append wa_header to t_header.
clear wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Time :'.
Concatenate sy-Uzeit(2) '.'
sy-datum+2(2) '.'
sy-datum+4(2) into wa_header-info.
append wa_header to t_header.
clear wa_header.
describe table itab_final lines line.
wa_header-typ = 'A'.
linecount = line.
Concatenate 'Total number of records :' linecount into wa_header-info separated by space.
append wa_header to t_header.
clear wa_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = t_header
I_LOGO = 'VMCADMIN'
I_END_OF_LIST_GRID =
I_ALV_FORM =
endform.
*designing layout.
form gd_layout.
gd_layout-zebra = 'X'.
gd_layout-edit = 'X'.
gd_layout-no_hotspot = ''.
gd_layout-no_colhead = ''.
gd_layout-colwidth_optimize = 'X'.
endform.
REward if useful.
Similar Messages
-
Regarding REUSE_ALV_COMMENTARY_WRITE FM
Hi Friends
can you please send me the sample code with paramers usage of
REUSE_ALV_COMMENTARY_WRITE function module in 4.0B versionhi
*& Report ZALVLOGO
REPORT ZALVLOGO.
TYPE-POOLS : slis.
*ALV Formatting tables /structures
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv.
DATA: gt_events TYPE slis_t_event.
DATA: gs_layout TYPE slis_layout_alv.
DATA: gt_page TYPE slis_t_listheader.
DATA: gs_page TYPE slis_listheader.
DATA: v_repid LIKE sy-repid.
*ALV Formatting work area
DATA: w_fieldcat TYPE slis_fieldcat_alv.
DATA: w_events TYPE slis_alv_event.
DATA: gt_bsid TYPE TABLE OF bsid WITH HEADER LINE.
INITIALIZATION.
PERFORM build_events.
PERFORM build_page_header.
START-OF-SELECTION.
*perform build_comment. "top_of_page - in initialization at present
SELECT * FROM bsid INTO TABLE gt_bsid UP TO 10 ROWS.
*perform populate_for_fm using '1' '3' 'BUKRS' '8' 'GT_BSID' 'Whee'.
*USING = Row, Column, Field name, display length, table name, heading
*OR
PERFORM build_fieldcat.
gs_layout-zebra = 'X'.
*top of page event does not work without I_callback_program
v_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = v_repid
i_structure_name = 'BSID'
i_background_id = 'ALV_BACKGROUND'
i_grid_title = 'This is the grid title'
I_GRID_SETTINGS =
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
it_events = gt_events[]
TABLES
t_outtab = gt_bsid.
Form..............: populate_for_fm
Description.......: Populates fields for function module used in ALV
FORM populate_for_fm USING p_row
p_col
p_fieldname
p_len
p_table
p_desc.
w_fieldcat-row_pos = p_row. "Row Position
w_fieldcat-col_pos = p_col. "Column Position
w_fieldcat-fieldname = p_fieldname. "Field name
w_fieldcat-outputlen = p_len. "Column Lenth
w_fieldcat-tabname = p_table. "Table name
w_fieldcat-reptext_ddic = p_desc. "Field Description
w_fieldcat-input = '1'.
APPEND w_fieldcat TO gt_fieldcat.
CLEAR w_fieldcat.
ENDFORM. " populate_for_fm
*& Form build_events
FORM build_events.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_events.
READ TABLE gt_events
WITH KEY name = slis_ev_user_command
INTO ls_event.
IF sy-subrc = 0.
MOVE slis_ev_user_command TO ls_event-form.
APPEND ls_event TO gt_events.
ENDIF.
READ TABLE gt_events
WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE slis_ev_top_of_page TO ls_event-form.
APPEND ls_event TO gt_events.
ENDIF.
ENDFORM. " build_events
*& Form USER_COMMAND
When user command is called it uses 2 parameters. The itab
passed to the ALV is in whatever order it currently is on screen.
Therefore, you can read table itab index rs_selfield-tabindex to get
all data from the table. You can also check r_ucomm and code
accordingly.
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
READ TABLE gt_bsid INDEX rs_selfield-tabindex.
error checking etc.
SET PARAMETER ID 'KUN' FIELD gt_bsid-kunnr.
CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
ENDFORM. "user_command
*& Form top_of_page
Your own company logo can go here if it has been saved (OAOR)
If the logo is larger than the size of the headings in gt_page,
the window will not show full logo and will have a scroll bar. Thus,
it is a good idea to have a standard ALV header if you are going to
use logos in your top of page.
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_page
i_logo = 'ENJOYSAP_LOGO'.
ENDFORM. "top_of_page
*& Form build_fieldcat
*Many and varied fields are available here. Have a look at documentation
*for FM REUSE_ALV_LIST_DISPLAY and REUSE_ALV_FIELDCATALOG_MERGE
FORM build_fieldcat.
w_fieldcat-fieldname = 'BUDAT'.
w_fieldcat-seltext_m = 'Dte pst'.
w_fieldcat-ddictxt(1) = 'M'.
w_fieldcat-edit = 'x'.
Can change the position of fields if you do not want them in order
of the DDIC or itab
w_fieldcat-row_pos = '1'.
w_fieldcat-col_pos = '10'.
APPEND w_fieldcat TO gt_fieldcat.
CLEAR w_fieldcat.
ENDFORM. " build_fieldcat
*& Form build_page_header
gt_page is used in top of page (ALV subroutine - NOT event)
*H = Header, S = Selection, A = Action
FORM build_page_header.
For Headers, Key is not printed and is irrelevant. Will not cause
a syntax error, but is not used.
gs_page-typ = 'H'.
gs_page-info = 'Header 1'.
APPEND gs_page TO gt_page.
gs_page-typ = 'H'.
gs_page-info = 'Header 2'.
APPEND gs_page TO gt_page.
For Selections, the Key is printed (bold). It can be anything up to 20
bytes. It gets printed in order of code here, not by key value.
gs_page-typ = 'S'.
gs_page-key = 'And the winner is:'.
gs_page-info = 'Selection 1'.
APPEND gs_page TO gt_page.
gs_page-typ = 'S'.
gs_page-key = 'Runner up:'.
gs_page-info = 'Selection 2'.
APPEND gs_page TO gt_page.
For Action, Key is also irrelevant.
gs_page-typ = 'A'.
gs_page-info = 'Action goes here'.
APPEND gs_page TO gt_page.
ENDFORM. " build_page_header
reward if u find useful
regards
Nagesh.Paruchuri -
Regarding putting trafic lights in alv report
Hi frnds,
I need to add Traffic lites to my program can any one help me how to do that.
Below i m providing my code.
<code>
*ztest_alv
*& Report ZSAMPLEALV3 *
REPORT ZSAMPLEALV3
MESSAGE-ID Z00.
TABLE DECLARATIONS
TABLES : EKKO. "Purchasing Document Header
CONSTANTS DECLARATIONS
CONSTANTS : C_EBELN(5) VALUE 'EBELN'.
DATA DECLARATIONS
DATA : V_FLAG, "For Select Status
V_DATA(50). "To Store Data
TYPE DECLARATIONS FOR ALV *
TYPE-POOLS : SLIS.
*Type Declarations for Field Catalog for Basic List
DATA : I_FLDCAT_HEAD TYPE SLIS_T_FIELDCAT_ALV,
WA_FLDCAT_HEAD TYPE SLIS_FIELDCAT_ALV.
*Type Declarations for Field Catalog for Secondary List
DATA : I_FLDCAT_ITEM TYPE SLIS_T_FIELDCAT_ALV,
WA_FLDCAT_ITEM TYPE SLIS_FIELDCAT_ALV.
*Type Declarations for Displaying Images on Basic Grid
DATA : I_COMMENT TYPE SLIS_T_LISTHEADER,
WA_COMMENT TYPE SLIS_LISTHEADER.
*Type Declarations for Displaying Images on Secondary Grid
DATA : I_COMMENT_SEC TYPE SLIS_T_LISTHEADER,
WA_COMMENT_SEC TYPE SLIS_LISTHEADER.
*Type Declarations for ALV Events for Basic Grid
DATA : I_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT LIKE LINE OF I_EVENTS.
*Type Declarations for ALV Events for Secondary Grid
DATA : I_EVENTS_SEC TYPE SLIS_T_EVENT,
WA_EVENT_SEC LIKE LINE OF I_EVENTS.
*Type Declarations for Layout Design
DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
*Type Declarations for Linking the fields
DATA : WA_KEYINFO TYPE SLIS_KEYINFO_ALV.
Type declarations for coloring field
DATA : wa_color type LVC_S_SCOL.
DATA: IT_COLOR TYPE TABLE OF LVC_S_SCOL.
INTERNAL TABLE DECLARATIONS
*--Internal Table for Basic List
DATA : BEGIN OF IT_FINAL_BAS OCCURS 0,
EBELN LIKE EKKO-EBELN, "Purchasing Document Number
BUKRS LIKE EKKO-BUKRS, "Company Code
AEDAT LIKE EKKO-AEDAT, "Date on which the record was created
EKORG LIKE EKKO-EKORG, "Purchasing Organization
EKGRP LIKE EKKO-EKGRP, "Purchasing group
COLOR(3) , "For applying color
END OF IT_FINAL_BAS.
*--Internal Table for Secondary List
DATA : BEGIN OF IT_FINAL_SEC OCCURS 0,
EBELN LIKE EKPO-EBELN, "Purchasing Document Number
MATNR LIKE EKPO-MATNR, "Material Number
TXZ01 LIKE EKPO-TXZ01, "Material Desc
WERKS LIKE EKPO-WERKS, "Plant
LGORT LIKE EKPO-LGORT, "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 (in document currency)
NETWR LIKE EKPO-NETWR, "Net order value in PO currency
DUMMY LIKE ICON-ID, "For placing Icon
COLOR(3) , "For applying color
END OF IT_FINAL_SEC.
*--Internal Table for Secondary List with selected records
DATA : BEGIN OF I_ITEM_DISPLAY OCCURS 0,
EBELN LIKE EKPO-EBELN, "Purchasing Document Number
MATNR LIKE EKPO-MATNR, "Material Number
TXZ01 LIKE EKPO-TXZ01, "Material Desc
WERKS LIKE EKPO-WERKS, "Plant
LGORT LIKE EKPO-LGORT, "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 (in document currency)
NETWR LIKE EKPO-NETWR, "Net order value in PO currency
DUMMY LIKE ICON-ID, "For placing Icon
COLOR(3) , "For applying color
END OF I_ITEM_DISPLAY.
SELECTION SCREEN
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-H01.
SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
SELECTION-SCREEN : BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) TEXT-003.
PARAMETERS: P_DISP RADIOBUTTON GROUP RAD1 DEFAULT 'X'.
SELECTION-SCREEN : END OF LINE.
SELECTION-SCREEN : BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) TEXT-005.
PARAMETERS: P_UPD RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN : END OF LINE.
SELECTION-SCREEN END OF BLOCK B2.
Event : INITIALIZATION
INITIALIZATION.
MOVE 'Developed by'(001) TO V_DATA.
Event : AT SELECTION SCREEN
AT SELECTION-SCREEN.
PERFORM VALIDATE_EBELN.
Event : START-OF-SELECTION
START-OF-SELECTION.
*--Getting the Data
PERFORM GET_DATA.
*--Generating the Field catalog for basic and secondary grid
PERFORM GET_FLDCAT.
*--Generating the Layout for basic and secondary grid
PERFORM GET_LAYOUT.
*--Generating the key infor to link Basic grid to Secondary grid
PERFORM GET_KEYINFO.
*--Generating the Events for Basic and Secondary Grid
PERFORM GET_EVENTS.
*--Displaying data only
IF P_DISP = 'X'.
PERFORM DISPLAY_DATA.
ELSE .
PERFORM UPDATE_DATA.
ENDIF.
Event : END-OF-SELECTION
END-OF-SELECTION.
*& Form DISPLAY_DATA
text
--> p1 text
<-- p2 text
FORM DISPLAY_DATA .
IF V_FLAG EQ 'X'.
*--Generating Basic List
PERFORM DISP_BASIC_LIST.
ELSE.
IF SY-SUBRC NE 0.
MESSAGE I010 WITH 'No Data Found To Display'(002).
ENDIF.
ENDFORM. " DISPLAY_DATA
SUB-ROUTINES
*& Form VALIDATE_EBELN
Validating the PO No
FORM VALIDATE_EBELN .
SELECT EBELN
UP TO 1 ROWS
INTO (EKKO-EBELN)
FROM EKKO
WHERE EBELN IN S_EBELN.
ENDSELECT.
IF SY-SUBRC NE 0.
MESSAGE I010 WITH 'Invalid PO No'(003) S_EBELN-LOW 'To'(004) S_EBELN-HIGH.
ENDIF.
ENDFORM. " VALIDATE_EBELN
*& Form GET_DATA
Getting Basic List and Secondary List Data
FORM GET_DATA .
*--Getting Basic List Data
SELECT EBELN "PO No
BUKRS "Company Code
AEDAT "Creation Date
EKORG "Purch Org
EKGRP "Purch Group
INTO TABLE IT_FINAL_BAS
FROM EKKO
WHERE EBELN IN S_EBELN.
*--Getting Secondary List Data
IF SY-SUBRC EQ 0.
SELECT EBELN "PO No
MATNR "Material No
TXZ01 "Material Desc
WERKS "Plant
LGORT "Location
MATKL "Material Group
MENGE "PO Qty
MEINS "Unit
NETPR "Net Price
NETWR "Net Value
INTO TABLE IT_FINAL_SEC
FROM EKPO
WHERE EBELN IN S_EBELN.
ENDIF.
IF SY-SUBRC EQ 0.
V_FLAG = 'X'.
ELSE.
V_FLAG = SPACE.
ENDIF.
ENDFORM. " GET_DATA
*& Form GET_FLDCAT
Generating the Field Catalog
FORM GET_FLDCAT .
*--Generating the Field Catalog for Basic List
WA_FLDCAT_HEAD-REPTEXT_DDIC = 'Status'.
WA_FLDCAT_HEAD-FIELDNAME = 'LIGHT'.
WA_FLDCAT_HEAD-COL_POS = '1'.
WA_FLDCAT_HEAD-JUST = 'C'.
WA_FLDCAT_HEAD-OUTPUTLEN = '4'.
WA_FLDCAT_HEAD-ICON = 'X'.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
CLEAR WA_FLDCAT_HEAD .
WA_FLDCAT_HEAD-FIELDNAME = 'EBELN'.
WA_FLDCAT_HEAD-COL_POS = '2'.
WA_FLDCAT_HEAD-JUST = 'C'.
WA_FLDCAT_HEAD-OUTPUTLEN = '12'.
WA_FLDCAT_HEAD-SELTEXT_M = 'PO Number'(006).
WA_FLDCAT_HEAD-DDICTXT = 'M'.
WA_FLDCAT_HEAD-REF_TABNAME = ' '.
WA_FLDCAT_HEAD-HOTSPOT = 'X'.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
CLEAR WA_FLDCAT_HEAD .
WA_FLDCAT_HEAD-FIELDNAME = 'BUKRS'(007).
WA_FLDCAT_HEAD-COL_POS = '3'.
WA_FLDCAT_HEAD-OUTPUTLEN = '12'.
WA_FLDCAT_HEAD-SELTEXT_M = 'Company Code'(008).
WA_FLDCAT_HEAD-DDICTXT = 'M'.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
WA_FLDCAT_HEAD-FIELDNAME = 'AEDAT'(009).
WA_FLDCAT_HEAD-COL_POS = '4'.
WA_FLDCAT_HEAD-OUTPUTLEN = '10'.
WA_FLDCAT_HEAD-SELTEXT_M = 'PO Date'(010).
WA_FLDCAT_HEAD-DDICTXT = 'M'.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
WA_FLDCAT_HEAD-FIELDNAME = 'EKORG'(011).
WA_FLDCAT_HEAD-COL_POS = '5'.
WA_FLDCAT_HEAD-OUTPUTLEN = '6'.
WA_FLDCAT_HEAD-SELTEXT_M = 'PO Org'(012).
WA_FLDCAT_HEAD-DDICTXT = 'M'.
WA_FLDCAT_HEAD-EDIT = 'X'.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
WA_FLDCAT_HEAD-FIELDNAME = 'EKGRP'(013).
WA_FLDCAT_HEAD-COL_POS = '6'.
WA_FLDCAT_HEAD-OUTPUTLEN = '8'.
WA_FLDCAT_HEAD-SELTEXT_M = 'PO Group'(014).
WA_FLDCAT_HEAD-DDICTXT = 'M'.
WA_FLDCAT_HEAD-DO_SUM = 'X'.
APPEND WA_FLDCAT_HEAD TO I_FLDCAT_HEAD.
*--Generating the Field Catalog for secondary List
WA_FLDCAT_ITEM-FIELDNAME = 'EBELN'.
WA_FLDCAT_ITEM-COL_POS = '1'.
WA_FLDCAT_ITEM-JUST = 'C'.
WA_FLDCAT_ITEM-OUTPUTLEN = '12'.
WA_FLDCAT_ITEM-SELTEXT_M = 'PO Number'(006).
WA_FLDCAT_ITEM-DDICTXT = 'M'.
WA_FLDCAT_ITEM-REF_TABNAME = ' '.
APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
WA_FLDCAT_ITEM-FIELDNAME = 'MATNR'(015).
WA_FLDCAT_ITEM-COL_POS = '2'.
WA_FLDCAT_ITEM-JUST = 'C'.
WA_FLDCAT_ITEM-OUTPUTLEN = '18'.
WA_FLDCAT_ITEM-SELTEXT_M = 'Item Number'(016).
WA_FLDCAT_ITEM-DDICTXT = 'M'.
WA_FLDCAT_ITEM-REF_TABNAME = ' '.
APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
WA_FLDCAT_ITEM-FIELDNAME = 'TXZ01'(017).
WA_FLDCAT_ITEM-COL_POS = '3'.
WA_FLDCAT_ITEM-JUST = 'C'.
WA_FLDCAT_ITEM-OUTPUTLEN = '40'.
WA_FLDCAT_ITEM-SELTEXT_M = 'Item Desc'(018).
WA_FLDCAT_ITEM-DDICTXT = 'M'.
APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
WA_FLDCAT_ITEM-FIELDNAME = 'WERKS'(019).
WA_FLDCAT_ITEM-COL_POS = '4'.
WA_FLDCAT_ITEM-JUST = 'C'.
WA_FLDCAT_ITEM-OUTPUTLEN = '6'.
WA_FLDCAT_ITEM-SELTEXT_M = 'Plant'(020).
WA_FLDCAT_ITEM-DDICTXT = 'M'.
APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
WA_FLDCAT_ITEM-FIELDNAME = 'LGORT'(021).
WA_FLDCAT_ITEM-COL_POS = '5'.
WA_FLDCAT_ITEM-JUST = 'C'.
WA_FLDCAT_ITEM-OUTPUTLEN = '9'.
WA_FLDCAT_ITEM-SELTEXT_M = 'Location'(022).
WA_FLDCAT_ITEM-DDICTXT = 'M'.
APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
WA_FLDCAT_ITEM-FIELDNAME = 'MATKL'(023).
WA_FLDCAT_ITEM-COL_POS = '6'.
WA_FLDCAT_ITEM-JUST = 'C'.
WA_FLDCAT_ITEM-OUTPUTLEN = '10'.
WA_FLDCAT_ITEM-SELTEXT_M = 'Mat Group'(024).
WA_FLDCAT_ITEM-DDICTXT = 'M'.
APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
WA_FLDCAT_ITEM-FIELDNAME = 'MENGE'(025).
WA_FLDCAT_ITEM-COL_POS = '7'.
WA_FLDCAT_ITEM-JUST = 'C'.
WA_FLDCAT_ITEM-OUTPUTLEN = '17'.
WA_FLDCAT_ITEM-SELTEXT_M = 'PO Qty'(026).
WA_FLDCAT_ITEM-DDICTXT = 'M'.
APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
WA_FLDCAT_ITEM-FIELDNAME = 'MEINS'(027).
WA_FLDCAT_ITEM-COL_POS = '8'.
WA_FLDCAT_ITEM-JUST = 'C'.
WA_FLDCAT_ITEM-OUTPUTLEN = '3'.
WA_FLDCAT_ITEM-SELTEXT_M = 'Unit'(028).
WA_FLDCAT_ITEM-DDICTXT = 'M'.
APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
WA_FLDCAT_ITEM-FIELDNAME = 'NETPR'(029).
WA_FLDCAT_ITEM-COL_POS = '9'.
WA_FLDCAT_ITEM-JUST = 'C'.
WA_FLDCAT_ITEM-OUTPUTLEN = '14'.
WA_FLDCAT_ITEM-SELTEXT_M = 'Net Price'(037).
WA_FLDCAT_ITEM-DDICTXT = 'M'.
APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
WA_FLDCAT_ITEM-FIELDNAME = 'NETWR'(030).
WA_FLDCAT_ITEM-COL_POS = '10'.
WA_FLDCAT_ITEM-JUST = 'C'.
WA_FLDCAT_ITEM-OUTPUTLEN = '16'.
WA_FLDCAT_ITEM-SELTEXT_M = 'Net Value'(031).
WA_FLDCAT_ITEM-DDICTXT = 'M'.
APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
WA_FLDCAT_ITEM-FIELDNAME = 'DUMMY'(038).
WA_FLDCAT_ITEM-COL_POS = '11'.
WA_FLDCAT_ITEM-JUST = 'C'.
WA_FLDCAT_ITEM-OUTPUTLEN = '3'.
WA_FLDCAT_ITEM-SELTEXT_M = 'Status'(039).
WA_FLDCAT_ITEM-DDICTXT = 'M'.
WA_FLDCAT_ITEM-ICON = 'X'.
APPEND WA_FLDCAT_ITEM TO I_FLDCAT_ITEM.
ENDFORM. " GET_FLDCAT
*& Form DISP_BASIC_LIST
Generating the Basic List
FORM DISP_BASIC_LIST .
**--Applying the color to record in Basic List
SORT IT_FINAL_BAS BY BUKRS.
LOOP AT IT_FINAL_BAS.
IF IT_FINAL_BAS-BUKRS LE '1000'.
IT_FINAL_BAS-COLOR = 'C21'.
ELSEIF IT_FINAL_BAS-BUKRS GT '1000' AND IT_FINAL_BAS-BUKRS LE '2000'.
IT_FINAL_BAS-COLOR = 'C41'.
ELSEIF IT_FINAL_BAS-BUKRS GT '2000' AND IT_FINAL_BAS-BUKRS LE '3000'.
IT_FINAL_BAS-COLOR = 'C71'.
ELSEIF IT_FINAL_BAS-BUKRS GT '3000'.
IT_FINAL_BAS-COLOR = 'C51'.
ELSE.
IT_FINAL_BAS-COLOR = 'C61'.
ENDIF.
MODIFY IT_FINAL_BAS INDEX SY-TABIX.
ENDLOOP.
*--Generating the Grid output
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'ZTEST_ALV'
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 = 'PLAIN_BACKGROUND'
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = I_FLDCAT_HEAD
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = I_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 = IT_FINAL_BAS
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. " DISP_BASIC_LIST
*& Form GET_EVENTS
Getting the ALV Events
FORM GET_EVENTS .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = I_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.
*--Calling the User Defined sub-routines for ALV Events
IF NOT I_EVENTS[] IS INITIAL.
READ TABLE I_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
WA_EVENT-FORM = 'GENERATE_USERCOMMAND_HEADER'.
MODIFY I_EVENTS FROM WA_EVENT INDEX SY-TABIX.
READ TABLE I_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
WA_EVENT-FORM = 'FRM_TOP_OF_PAGE'.
MODIFY I_EVENTS FROM WA_EVENT INDEX SY-TABIX.
READ TABLE I_EVENTS INTO WA_EVENT WITH KEY NAME = 'END_OF_LIST'.
WA_EVENT-FORM = 'GENERATE_USERCOMMAND_FOOTER'.
MODIFY I_EVENTS FROM WA_EVENT INDEX SY-TABIX.
READ TABLE I_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
WA_EVENT-FORM = 'GENERATE_USERCOMMAND3'.
MODIFY I_EVENTS FROM WA_EVENT INDEX SY-TABIX.
ENDIF.
ENDFORM. " GET_EVENTS
*& Form GENERATE_USERCOMMAND_HEADER
Displaying Header-Text and Logo on Grid
FORM GENERATE_USERCOMMAND_HEADER.
CLEAR I_COMMENT[].
WA_COMMENT-TYP = 'H'.
WA_COMMENT-INFO = 'General Purchase Order Info'(032).
APPEND WA_COMMENT TO I_COMMENT.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_COMMENT
I_LOGO = 'ENJOYSAP_LOGO'.
I_END_OF_LIST_GRID = 'X'.
ENDFORM. " GENERATE_USERCOMMAND
*FORM FRM_TOP_OF_PAGE.
write :/ text-005 intensified on.
write :/ text-006 , sy-sysid,14 sy-mandt.
write :/ text-007 , sy-uname.
write :/ text-008 , sy-datum.
write :/ text-009 , sy-uzeit.
skip.
*ENDFORM.
*& Form GENERATE_USERCOMMAND_FOOTER
Displaying Footer-Text
FORM GENERATE_USERCOMMAND_FOOTER .
CLEAR I_COMMENT[].
WA_COMMENT-TYP = 'S'.
WA_COMMENT-KEY = V_DATA.
WA_COMMENT-INFO = 'kaka'(033).
APPEND WA_COMMENT TO I_COMMENT.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_COMMENT
I_LOGO = ''
I_END_OF_LIST_GRID = 'X'.
ENDFORM. " GENERATE_USERCOMMAND_FOOTER
*& Form GENERATE_USERCOMMAND3
Getting the F-Code and Calling Secondary List
--> P_UCOMM LIKE SY-UCOMM
--> P_SELFIELD TYPE SLIS_SELFIELD
FORM GENERATE_USERCOMMAND3 USING P_UCOMM LIKE SY-UCOMM
P_SELFIELD TYPE SLIS_SELFIELD.
CASE P_UCOMM.
WHEN '&IC1'. "DOUBLE CLICK Func-Code
READ TABLE IT_FINAL_BAS INDEX P_SELFIELD-TABINDEX.
REFRESH I_ITEM_DISPLAY.
*--Applying the color to record in Secondary List
LOOP AT IT_FINAL_SEC WHERE EBELN = IT_FINAL_BAS-EBELN.
IF IT_FINAL_SEC-NETPR EQ 0.
IT_FINAL_SEC-DUMMY = '@0A@'.
IT_FINAL_SEC-COLOR = 'C61'.
ELSEIF IT_FINAL_SEC-NETPR GT 0 AND IT_FINAL_SEC-NETPR LE 200.
IT_FINAL_SEC-DUMMY = '@09@'.
IT_FINAL_SEC-COLOR = 'C41'.
ELSEIF IT_FINAL_SEC-NETPR GT 200 AND IT_FINAL_SEC-NETPR LE 1000.
IT_FINAL_SEC-DUMMY = '@08@'.
IT_FINAL_SEC-COLOR = 'C71'.
ELSEIF IT_FINAL_SEC-NETPR GT 1000.
IT_FINAL_SEC-DUMMY = '@6P@'.
IT_FINAL_SEC-COLOR = 'C51'.
ENDIF.
MODIFY IT_FINAL_SEC INDEX SY-TABIX.
MOVE-CORRESPONDING IT_FINAL_SEC TO I_ITEM_DISPLAY.
APPEND I_ITEM_DISPLAY.
CLEAR I_ITEM_DISPLAY.
ENDLOOP.
*--Getting the ALV Events of Secondary List
PERFORM GET_EVENTS_SEC.
*--Generating the ALV Secondary Grid output
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'ZTEST'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = 'PLAIN_BACKGROUND'
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = I_FLDCAT_ITEM
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = I_EVENTS_SEC
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_ITEM_DISPLAY
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.
ENDCASE.
ENDFORM. " GENERATE_USERCOMMAND3
*& Form GET_LAYOUT
Generating the Layout
FORM GET_LAYOUT .
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. "OPTIMIZING FIELD WIDTH
WA_LAYOUT-ZEBRA = 'X'. "PUTTING ZEBRA COLORS
WA_LAYOUT-INFO_FIELDNAME = 'COLOR'(034). "APPLYING COLORS TO ROWS
ENDFORM. " GET_LAYOUT
*& Form GET_KEYINFO
Getting Key info
FORM GET_KEYINFO .
*--Linking the Basic List to Secondary List
WA_KEYINFO-HEADER01 = C_EBELN.
WA_KEYINFO-ITEM01 = C_EBELN.
ENDFORM. " GET_KEYINFO
*& Form GET_EVENTS_SEC
Getting Secondary List Events
FORM GET_EVENTS_SEC .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = I_EVENTS_SEC
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.
*--Calling user-defined sub-routines for Secondary List
IF NOT I_EVENTS_SEC[] IS INITIAL.
READ TABLE I_EVENTS_SEC INTO WA_EVENT_SEC WITH KEY NAME = 'TOP_OF_PAGE'.
WA_EVENT_SEC-FORM = 'GENERATE_USERCOMMAND_H_SEC'.
MODIFY I_EVENTS_SEC FROM WA_EVENT_SEC INDEX SY-TABIX.
READ TABLE I_EVENTS_SEC INTO WA_EVENT_SEC WITH KEY NAME = 'END_OF_LIST'.
WA_EVENT_SEC-FORM = 'GENERATE_USERCOMMAND_F_SEC'.
MODIFY I_EVENTS_SEC FROM WA_EVENT_SEC INDEX SY-TABIX.
ENDIF.
ENDFORM. " GET_EVENTS_SEC
*& Form GENERATE_USERCOMMAND_H_SEC
Displaying Header-Text and Logo on Grid For Secondary List
FORM GENERATE_USERCOMMAND_H_SEC.
CLEAR I_COMMENT_SEC[].
WA_COMMENT_SEC-TYP = 'H'.
WA_COMMENT_SEC-INFO = 'Purchase Order Info'(035).
APPEND WA_COMMENT_SEC TO I_COMMENT_SEC.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_COMMENT_SEC
I_LOGO = 'ENJOYSAP_LOGO'.
I_END_OF_LIST_GRID = 'X'.
ENDFORM. " GENERATE_USERCOMMAND_H_SEC
*& Form GENERATE_USERCOMMAND_F_SEC
Displaying Footer-Text for Secondary List
FORM GENERATE_USERCOMMAND_F_SEC.
CLEAR I_COMMENT_SEC[].
WA_COMMENT_SEC-TYP = 'S'.
WA_COMMENT_SEC-KEY = V_DATA.
WA_COMMENT_SEC-INFO = 'kak1'(036).
APPEND WA_COMMENT_SEC TO I_COMMENT_SEC.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_COMMENT_SEC
I_LOGO = ''
I_END_OF_LIST_GRID = 'X'.
ENDFORM. " GENERATE_USERCOMMAND_F_SEC
*& Form UPDATE_DATA
text
--> p1 text
<-- p2 text
*form UPDATE_DATA .
*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_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_GRID_TITLE
I_GRID_SETTINGS = I_GRID_SETTINGS
IS_LAYOUT = IS_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = IT_EVENTS
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
t_outtab = t_outtab
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. " UPDATE_DATA
</code>
regards,
sanjayHi,
Please refer to the code below:
REPORT ALV_LIGHTS.* Published at SAPTechnical.COMTYPES: BEGIN OF ty_alv,
lights(1) TYPE c, "Exception, Holding the value of the lights
text(20) TYPE c, "some text
END OF ty_alv.DATA: gs_alv TYPE ty_alv,
gt_alv TYPE TABLE OF ty_alv,
gr_alv TYPE REF TO cl_salv_table,
gr_columns TYPE REF TO cl_salv_columns_table.START-OF-SELECTION.
gs_alv-lights = '1'. "Color red
gs_alv-text = 'RED SIGNAL'.
APPEND gs_alv TO gt_alv. gs_alv-lights = '2'. "Color yellow
gs_alv-text = 'YELLOW SIGNAL'.
APPEND gs_alv TO gt_alv. gs_alv-lights = '3'. "Color green
gs_alv-text = 'GREEN SIGNAL'.
APPEND gs_alv TO gt_alv. CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = gr_alv
CHANGING
t_table = gt_alv. gr_columns = gr_alv->get_columns( ). gr_columns->set_exception_column( value = 'LIGHTS' ). CALL METHOD gr_alv->display.
Thanks,
Sriram Ponna. -
Hi Experts,
I am using 'REUSE_ALV_COMMENTARY_WRITE' to write top of paGe in ALV display.
But it only display blank space in the header.
Any suggestions?
here is the code:
FORM top_of_page. "#EC CALLED
CLEAR : wa_commentary,
it_commentary,
it_commentary[].
MOVE sy-datum TO lv_date.
WRITE lv_date USING EDIT MASK '__.__.____' TO lv_date1.
CONCATENATE text-006 text-010 lv_date1 INTO lv_header_info SEPARATED BY space.
MOVE co_h TO wa_commentary-typ.
MOVE lv_header_info TO wa_commentary-info.
APPEND wa_commentary TO it_commentary.
SHIFT so_matnr-high LEFT DELETING LEADING '0'.
SHIFT so_matnr-low LEFT DELETING LEADING '0'.
IF so_matnr-high NE space.
CONCATENATE text-011 text-010 so_matnr-low text-016 so_matnr-high INTO lv_header_info SEPARATED BY space.
ELSE.
CONCATENATE text-011 text-010 so_matnr-low INTO lv_header_info SEPARATED BY space.
ENDIF.
MOVE co_s TO wa_commentary-typ.
MOVE lv_header_info TO wa_commentary-info.
APPEND wa_commentary TO it_commentary.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_commentary.
ENDFORM. "top_of_page
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = lv_repid
it_fieldcat = it_fieldcat
i_callback_top_of_page = 'TOP_OF_PAGE'
TABLES
t_outtab = it_sapnodiff
EXCEPTIONS
program_error = 1
OTHERS = 2.
Regards
SarojHi,
This should work. Please try
Thanks!
Sandeep
TYPE-POOLS: SLIS.
DATA : TBL_FCAT TYPE SLIS_FIELDCAT_ALV OCCURS 0 WITH HEADER LINE,
TBL_SORTFIELDS TYPE SLIS_T_SORTINFO_ALV,
G_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: FLD_CAT TYPE SLIS_FIELDCAT_ALV.
DATA: T_EVENTS TYPE SLIS_T_EVENT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
IS_LAYOUT = G_LAYOUT
IT_FIELDCAT = TBL_FCAT[]
TABLES
T_OUTTAB = TABLE_REPORT
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 BUILD_EVENT .
DATA: WA_EVENTS LIKE LINE OF T_EVENTS.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
ET_EVENTS = T_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.
ELSE.
READ TABLE T_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO WA_EVENTS.
IF SY-SUBRC = 0.
WA_EVENTS-FORM = 'TOP_OF_PAGE'.
MODIFY T_EVENTS FROM WA_EVENTS INDEX SY-TABIX TRANSPORTING FORM.
ENDIF.
ENDIF.
ENDFORM. " build_event
FORM TOP_OF_PAGE.
DATA: IT_COMMENTARY TYPE SLIS_T_LISTHEADER,
WA_IT_COMMENTARY TYPE SLIS_T_LISTHEADER WITH HEADER LINE.
DATA : L_BDATE(10) TYPE C,
L_EDATE(10) TYPE C.
WA_IT_COMMENTARY-INFO = SY-TITLE.
WA_IT_COMMENTARY-TYP = 'H'.
APPEND WA_IT_COMMENTARY TO IT_COMMENTARY.
CLEAR: L_BDATE, EDATE.
WRITE SY-DATUM TO L_BDATE MM/DD/YYYY.
WRITE SY-UZEIT TO L_EDATE USING EDIT MASK '__:__:__'.
CONDENSE L_EDATE.
CONCATENATE 'System Date/System time'(026) L_BDATE '/' L_EDATE INTO
WA_IT_COMMENTARY-INFO SEPARATED BY SPACE.
WA_IT_COMMENTARY-TYP = 'S'.
APPEND WA_IT_COMMENTARY TO IT_COMMENTARY.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_COMMENTARY.
Edited by: sandeep reddy on Jun 4, 2010 1:06 AM -
URGENT: REGARDING POSTING DATE AND DELETION OF ZEROS IN ALV REPORT
Hi,
I had made a report in which i have to display 'POSTING DATE' (iseg-budat) when we execute the report i.e. it should be displayed as PERIOD :- _______ to _______ .
2nd problem is i had displayed the material no. ,but there are zeros which are displaying in dere ,i want to remove dem ... example, if the mat.no. is 2321 ,it is displaying 000002321. i want to remove these zeros.
Its request to all of u dat plz help me as fast as possible as it is most urgent to me and if any body provide me help he or sh e will be definately rewarded..
Regards,
ric.sHere i am giving you one of the ALV reports i have generated. Check this program. I hope it will be helpful to you.
REPORT ZFI_ASSIGNED_FUNDS_FINAL.
TABLES: FMIT,FMCIT,FPOS,IFMEISA1,FMFCTRT,BSEG,ZREV_BUDGET.
TYPE-POOLS: SLIS.
*ALV data declarations
DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,
GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID LIKE SY-REPID.
*For ALV top of page
DATA : IT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
*For ALV Events
DATA : IT_EVENT1 TYPE SLIS_T_EVENT.
*For ALV Events
DATA : IT_EVENT TYPE SLIS_ALV_EVENT.
*For top of page heading
DATA: IT_LINE TYPE SLIS_LISTHEADER.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER : RADIO RADIOBUTTON GROUP R1.
IF RADIO EQ 'X'.
SELECT-OPTIONS: FIPEX FOR FPOS-FIPEX, " SELECTION FOR FUNDS CENTER & COMMITMENT ITEM
RFISTL FOR FMIT-RFISTL.
ENDIF.
PARAMETER: RADIO1 RADIOBUTTON GROUP R1.
IF RADIO1 EQ 'X'.
SELECT-OPTIONS : HKONT FOR BSEG-HKONT, " SELECTION FOR COST CENTER & G/L ACCOUNT
KOSTL FOR ZREV_BUDGET-KOSTL.
ENDIF.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: PERDE FOR IFMEISA1-PERDE DEFAULT '01' TO '12' OBLIGATORY.
PARAMETER : RYEAR LIKE FMIT-RYEAR OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B2.
DATA: BEGIN OF IT_TAB OCCURS 0,
FIKRS LIKE FMFCTR-FIKRS,
FICTR LIKE CSKS-KOSTL,
CTR_OBJNR LIKE FMFCTR-CTR_OBJNR,
RFISTL LIKE FMIT-RFISTL,
OBJNR LIKE BPPE-OBJNR,
END OF IT_TAB.
DATA: BEGIN OF IT_TAB1 OCCURS 0,
CO_OBJNR LIKE BPIJ-CO_OBJNR,
POSIT LIKE BPPE-POSIT,
FIPEX LIKE FMPOSIT-FIPEX,
FICTR LIKE FMFCTR-FICTR,
KSTAR LIKE COSP-KSTAR,
RFISTL LIKE FMIT-RFISTL,
OBJNR1 LIKE BPPE-OBJNR,
END OF IT_TAB1.
DATA: BEGIN OF IT_FMIT OCCURS 0,
RYEAR LIKE FMIT-RYEAR,
FIKRS LIKE FMIT-FIKRS,
RFISTL LIKE ZREV_BUDGET-KOSTL,
RFIPEX LIKE ZREV_BUDGET-KSTAR,
HSL01 LIKE FMIT-HSL01,
HSL02 LIKE FMIT-HSL02,
HSL03 LIKE FMIT-HSL03,
HSL04 LIKE FMIT-HSL04,
HSL05 LIKE FMIT-HSL05,
HSL06 LIKE FMIT-HSL06,
HSL07 LIKE FMIT-HSL07,
HSL08 LIKE FMIT-HSL08,
HSL09 LIKE FMIT-HSL09,
HSL10 LIKE FMIT-HSL10,
HSL11 LIKE FMIT-HSL11,
HSL12 LIKE FMIT-HSL12,
HSL13 LIKE FMIT-HSL13,
HSL14 LIKE FMIT-HSL14,
HSL15 LIKE FMIT-HSL15,
HSL16 LIKE FMIT-HSL16,
END OF IT_FMIT.
DATA: BEGIN OF IT_FMIT1 OCCURS 0,
RYEAR LIKE FMIT-RYEAR,
FIKRS LIKE FMIT-FIKRS,
RFISTL LIKE ZREV_BUDGET-KOSTL,
RFIPEX LIKE FMPG-FIPEX,
TOTAL LIKE FMIT-TSL01,
TOTAL1 LIKE FMIT-TSL01,
OBJNR LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
END OF IT_FMIT1.
DATA: BEGIN OF IT_BPPE OCCURS 0,
OBJNR LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
GJAHR LIKE BPPE-GJAHR,
WLP01 LIKE BPPE-WLP01,
WLP02 LIKE BPPE-WLP02,
WLP03 LIKE BPPE-WLP03,
WLP04 LIKE BPPE-WLP04,
WLP05 LIKE BPPE-WLP05,
WLP06 LIKE BPPE-WLP06,
WLP07 LIKE BPPE-WLP07,
WLP08 LIKE BPPE-WLP08,
WLP09 LIKE BPPE-WLP09,
WLP10 LIKE BPPE-WLP10,
WLP11 LIKE BPPE-WLP11,
WLP12 LIKE BPPE-WLP12,
END OF IT_BPPE.
DATA: BEGIN OF IT_BPPE1 OCCURS 0,
OBJNR LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
GJAHR LIKE BPPE-GJAHR,
RFISTL LIKE FMIT-RFISTL,
FIPEX LIKE FPOS-FIPEX,
TOTAL2 LIKE BPPE-WLP01,
END OF IT_BPPE1.
DATA: BEGIN OF IT_CSKS OCCURS 0,
KOKRS LIKE CSKS-KOKRS,
KOSTL LIKE CSKS-KOSTL,
BUKRS LIKE CSKS-BUKRS,
OBJNR LIKE CSKS-OBJNR,
END OF IT_CSKS.
DATA: BEGIN OF IT_COSP OCCURS 0,
OBJNR LIKE COSP-OBJNR,
GJAHR LIKE COSP-GJAHR,
KSTAR LIKE COSP-KSTAR,
BEKNZ LIKE COSP-BEKNZ,
WKG001 LIKE COSP-WKG001,
WKG002 LIKE COSP-WKG002,
WKG003 LIKE COSP-WKG003,
WKG004 LIKE COSP-WKG004,
WKG005 LIKE COSP-WKG005,
WKG006 LIKE COSP-WKG006,
WKG007 LIKE COSP-WKG007,
WKG008 LIKE COSP-WKG008,
WKG009 LIKE COSP-WKG009,
WKG010 LIKE COSP-WKG010,
WKG011 LIKE COSP-WKG011,
WKG012 LIKE COSP-WKG012,
END OF IT_COSP.
DATA: BEGIN OF IT_COSP2 OCCURS 0,
OBJNR LIKE COSP-OBJNR,
GJAHR LIKE COSP-GJAHR,
KSTAR LIKE COSP-KSTAR,
FIPEX LIKE FMPG-FIPEX,
TOTAL LIKE COSP-WKG001,
TOTAL1 LIKE COSP-WKG001,
OBJNR1 LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
END OF IT_COSP2.
IF RADIO EQ 'X'.
DATA: BEGIN OF IT_FINAL OCCURS 0,
FIKRS LIKE FMIT-FIKRS,
RFISTL LIKE FMIT-RFISTL,
RFIPEX LIKE FMIT-RFIPEX,
TEXT LIKE FMCIT-TEXT1,
ALLOC LIKE FMIT-TSL16,
USED LIKE FMIT-TSL16,
REMAIN LIKE FMIT-TSL16,
BEZEICH LIKE FMFCTRT-BEZEICH,
END OF IT_FINAL.
ENDIF.
IF RADIO1 EQ 'X'.
DATA: BEGIN OF IT_FINAL1 OCCURS 0,
GJAHR LIKE ZREV_BUDGET-GJAHR,
KOSTL LIKE ZREV_BUDGET-KOSTL,
KSTAR LIKE ZREV_BUDGET-KSTAR,
TOTAL1 LIKE COSP-WKG001,
TOTAL3 LIKE COSP-WKG001,
TEXT LIKE CSKU-KTEXT,
VARIANCE LIKE COSP-WKG001,
BEZEICH LIKE FMFCTRT-BEZEICH,
END OF IT_FINAL1.
ENDIF.
DATA: BEGIN OF IT_FISTL OCCURS 0,
RFISTL LIKE FMIT-RFISTL,
BEZEICH LIKE FMFCTRT-BEZEICH,
END OF IT_FISTL.
DATA: BEGIN OF IT_HKONT OCCURS 0,
KSTAR LIKE CSKU-KSTAR,
KTEXT LIKE CSKU-KTEXT,
END OF IT_HKONT.
DATA: PERIOD1 TYPE I,
PERIOD2 TYPE I,
PERIOD3 TYPE I,
PERIO TYPE I.
DATA: BEZEICH LIKE FMFCTRT-BEZEICH.
CONSTANTS: C_00 TYPE MONAT VALUE '00',
C_13 TYPE MONAT VALUE '13'.
DATA : IT_RETURN LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.
DATA: FIPEX1 LIKE COSP-KSTAR.
A T - S E L E C T I O N S C R E E N
AT SELECTION-SCREEN.
LOOP AT PERDE.
IF PERDE-LOW >= C_13 OR PERDE-HIGH >= C_13 .
MESSAGE E022(ZA) WITH 'Enter Period values from 1 to 12'.
EXIT.
ENDIF.
ENDLOOP.
IF NOT PERDE-LOW IS INITIAL.
PERIOD1 = PERDE-LOW.
ENDIF.
IF NOT PERDE-HIGH IS INITIAL.
PERIOD2 = PERDE-HIGH.
PERIOD3 = PERIOD2 - PERIOD1.
PERIOD3 = PERIOD3 + 1.
ELSE.
PERIOD3 = 1.
ENDIF.
PERIO = PERIOD1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR RFISTL-LOW.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS EQ 'NFFM'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'RFISTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO RFISTL-LOW.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR RFISTL-HIGH.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS EQ 'NFFM'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'RFISTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO RFISTL-HIGH.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR HKONT-LOW.
SELECT KSTAR KTEXT INTO TABLE IT_HKONT FROM CSKU WHERE SPRAS EQ 'EN'.
SORT IT_HKONT BY KSTAR.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'HKONT'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_HKONT
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO HKONT-LOW.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR HKONT-HIGH.
SELECT KSTAR KTEXT INTO TABLE IT_HKONT FROM CSKU WHERE SPRAS EQ 'EN'.
SORT IT_HKONT BY KSTAR.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'HKONT'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_HKONT
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO HKONT-HIGH.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR KOSTL-LOW.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS IN KOSTL.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'KOSTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO KOSTL-LOW.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR KOSTL-HIGH.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS IN KOSTL.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'KOSTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO KOSTL-HIGH.
ENDIF.
*START-OF-SELECTION
START-OF-SELECTION.
IF RADIO EQ 'X'. " FOR FUNDS CENTER AND COMMITMENT ITEM
PERFORM GET_DATA.
PERFORM PROCESS_DATA.
ENDIF.
IF RADIO1 EQ 'X'. " FOR COST CENTER AND G/L ACCOUNT
PERFORM GET_DATA1.
PERFORM PROCESS_DATA1.
ENDIF.
*END OF SELECTION
PERFORM BUILD_LAYOUT.
PERFORM BUILD_EVENTS.
IF RADIO EQ 'X'.
PERFORM BUILD_FIELDCATALOG.
PERFORM BUILD_SORT.
PERFORM DISPLAY_ALV_REPORT.
ENDIF.
IF RADIO1 EQ 'X'.
PERFORM BUILD_FIELDCATALOG1.
PERFORM BUILD_SORT1.
PERFORM DISPLAY_ALV_REPORT1.
ENDIF.
*& Form GET_DATA
text
--> p1 text
<-- p2 text
FORM GET_DATA .
SELECT FIKRS FICTR CTR_OBJNR INTO TABLE IT_TAB FROM FMFCTR
WHERE FIKRS EQ 'NFFM'
AND FICTR IN RFISTL.
SELECT CO_OBJNR POSIT INTO TABLE IT_TAB1 FROM BPIJ
FOR ALL ENTRIES IN IT_TAB
WHERE CO_OBJNR EQ IT_TAB-CTR_OBJNR.
LOOP AT IT_TAB1.
SELECT SINGLE FIPEX INTO IT_TAB1-FIPEX FROM FMPOSIT WHERE FIKRS EQ 'NFFM'
AND POSIT EQ IT_TAB1-POSIT
AND FIPEX IN FIPEX.
IF SY-SUBRC EQ '0'.
MODIFY IT_TAB1.
ELSE.
DELETE IT_TAB1.
ENDIF.
ENDLOOP.
SELECT OBJNR
POSIT
GJAHR
WLP01
WLP02
WLP03
WLP04
WLP05
WLP06
WLP07
WLP08
WLP09
WLP10
WLP11
WLP12
INTO TABLE IT_BPPE
FROM BPPE
FOR ALL ENTRIES IN IT_TAB1
WHERE OBJNR EQ IT_TAB1-CO_OBJNR
AND POSIT EQ IT_TAB1-POSIT
AND GJAHR EQ RYEAR
AND VORGA IN ('KBFR','KBUE','KBUS').
LOOP AT IT_BPPE.
MOVE-CORRESPONDING IT_BPPE TO IT_BPPE1.
IT_BPPE1-RFISTL = IT_BPPE1-OBJNR+6(4).
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_BPPE1-RFISTL
IMPORTING
OUTPUT = IT_BPPE1-RFISTL.
CALL FUNCTION 'FM_FIPEX_GET_FROM_POSIT'
EXPORTING
I_FIKRS = 'NFFM'
I_POSIT = IT_BPPE1-POSIT
IMPORTING
E_FIPEX = IT_BPPE1-FIPEX.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP01.
WHEN 2.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP02.
WHEN 3.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP03.
WHEN 4.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP04.
WHEN 5.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP05.
WHEN 6.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP06.
WHEN 7.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP07.
WHEN 8.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP08.
WHEN 9.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP09.
WHEN 10.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP10.
WHEN 11.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP11.
WHEN 12.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP12.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
COLLECT IT_BPPE1.
CLEAR PERIOD1.
CLEAR IT_BPPE1.
ENDLOOP.
SELECT RYEAR
FIKRS
RFISTL
RFIPEX
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
HSL12
HSL13
HSL14
HSL15
HSL16
INTO TABLE IT_FMIT FROM FMIT
FOR ALL ENTRIES IN IT_BPPE1
WHERE RYEAR EQ RYEAR
AND FIKRS EQ 'NFFM'
AND RFIPEX EQ IT_BPPE1-FIPEX
AND RFIPEX IN FIPEX
AND RFISTL EQ IT_BPPE1-RFISTL.
LOOP AT IT_FMIT.
MOVE-CORRESPONDING IT_FMIT TO IT_FMIT1.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL01.
WHEN 2.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL02.
WHEN 3.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL03.
WHEN 4.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL04.
WHEN 5.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL05.
WHEN 6.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL06.
WHEN 7.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL07.
WHEN 8.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL08.
WHEN 9.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL09.
WHEN 10.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL10.
WHEN 11.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL11.
WHEN 12.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL12.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
IT_FMIT1-TOTAL1 = IT_FMIT1-TOTAL * -1 .
COLLECT IT_FMIT1.
CLEAR PERIOD1.
CLEAR IT_FMIT1.
ENDLOOP.
ENDFORM. " GET_DATA
*& Form PROCESS_DATA
text
--> p1 text
<-- p2 text
FORM PROCESS_DATA .
SORT IT_FMIT1 BY FIKRS RFISTL RFIPEX.
SORT IT_BPPE1 BY RFISTL FIPEX.
LOOP AT IT_BPPE1.
IT_FINAL-RFISTL = IT_BPPE1-RFISTL.
IT_FINAL-RFIPEX = IT_BPPE1-FIPEX.
IT_FINAL-ALLOC = IT_BPPE1-TOTAL2.
READ TABLE IT_FMIT1 WITH KEY RFISTL = IT_BPPE1-RFISTL RFIPEX = IT_BPPE1-FIPEX.
IF SY-SUBRC EQ 0.
IT_FINAL-USED = IT_FMIT1-TOTAL1.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFIPEX
IMPORTING
OUTPUT = IT_FMIT1-RFIPEX.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFISTL
IMPORTING
OUTPUT = IT_FMIT1-RFISTL.
Changes made on 13/11/2007 *******************************
SELECT SINGLE TEXT1 INTO IT_FINAL-TEXT FROM FMCIT WHERE SPRAS EQ 'EN'
AND FIPEX EQ IT_FMIT1-RFIPEX.
SELECT SINGLE TEXT1 INTO IT_FINAL-TEXT FROM FMCIT WHERE SPRAS EQ 'EN'
AND FIPEX EQ IT_BPPE1-FIPEX.
Changes made on 13/11/2007 *******************************
SELECT SINGLE BEZEICH INTO IT_FINAL-BEZEICH FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FICTR EQ IT_FMIT1-RFISTL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FINAL-RFIPEX
IMPORTING
OUTPUT = IT_FINAL-RFIPEX.
IT_FINAL-REMAIN = IT_FINAL-ALLOC - IT_FINAL-USED.
APPEND IT_FINAL.
CLEAR IT_FINAL.
ENDLOOP.
SORT IT_FINAL BY FIKRS RFISTL RFIPEX.
LOOP AT IT_FMIT1.
READ TABLE IT_FINAL WITH KEY RFISTL = IT_FMIT1-RFISTL RFIPEX = IT_FMIT1-RFIPEX.
IF SY-SUBRC NE 0.
IT_FINAL-RFISTL = IT_FMIT1-RFISTL.
IT_FINAL-RFIPEX = IT_FMIT1-RFIPEX.
IT_FINAL-USED = IT_FMIT1-TOTAL1.
IT_FINAL-ALLOC = '0'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFIPEX
IMPORTING
OUTPUT = IT_FMIT1-RFIPEX.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFISTL
IMPORTING
OUTPUT = IT_FMIT1-RFISTL.
SELECT SINGLE TEXT1 INTO IT_FINAL-TEXT FROM FMCIT WHERE SPRAS EQ 'EN'
AND FIPEX EQ IT_FMIT1-RFIPEX.
SELECT SINGLE BEZEICH INTO IT_FINAL-BEZEICH FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FICTR EQ IT_FMIT1-RFISTL.
IT_FINAL-REMAIN = IT_FINAL-ALLOC - IT_FINAL-USED.
APPEND IT_FINAL.
CLEAR IT_FINAL.
ELSE.
DELETE IT_FMIT1.
ENDIF.
ENDLOOP.
SORT IT_FINAL BY FIKRS RFISTL RFIPEX.
ENDFORM. " PROCESS_DATA
*& Form GET_DATA1
text
--> p1 text
<-- p2 text
FORM GET_DATA1 .
SELECT KOKRS KOSTL BUKRS OBJNR INTO TABLE IT_CSKS
FROM CSKS
WHERE KOKRS EQ '1000'
AND KOSTL IN KOSTL
AND BUKRS EQ 'NFCL'.
SELECT OBJNR
GJAHR
KSTAR
BEKNZ
WKG001
WKG002
WKG003
WKG004
WKG005
WKG006
WKG007
WKG008
WKG009
WKG010
WKG011
WKG012
FROM COSP
INTO TABLE IT_COSP
FOR ALL ENTRIES IN IT_CSKS
WHERE OBJNR EQ IT_CSKS-OBJNR
AND GJAHR EQ RYEAR
AND KSTAR IN HKONT.
LOOP AT IT_COSP.
MOVE-CORRESPONDING IT_COSP TO IT_COSP2.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG001.
WHEN 2.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG002.
WHEN 3.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG003.
WHEN 4.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG004.
WHEN 5.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG005.
WHEN 6.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG006.
WHEN 7.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG007.
WHEN 8.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG008.
WHEN 9.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG009.
WHEN 10.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG010.
WHEN 11.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG011.
WHEN 12.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG012.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
IT_COSP2-OBJNR1 = IT_COSP2-OBJNR+10(6).
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_COSP2-OBJNR1
IMPORTING
OUTPUT = IT_COSP2-OBJNR1.
CONCATENATE 'FSNFFM' IT_COSP2-OBJNR1 INTO IT_COSP2-OBJNR1.
IT_COSP2-FIPEX = IT_COSP2-KSTAR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_COSP2-FIPEX
IMPORTING
OUTPUT = IT_COSP2-FIPEX.
CALL FUNCTION 'FM_POSIT_GET_FROM_FIPEX'
EXPORTING
I_FIKRS = 'NFFM'
I_FIPEX = IT_COSP2-FIPEX
I_FLG_BUFFER_ALL =
IMPORTING
E_POSIT = IT_COSP2-POSIT
TABLES
T_FMPOSIT =
EXCEPTIONS
INPUT_ERROR = 1
DATA_NOT_FOUND = 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.
CONDENSE IT_COSP2-OBJNR1.
CONDENSE IT_COSP2-POSIT.
COLLECT IT_COSP2.
CLEAR PERIOD1.
CLEAR IT_COSP2.
ENDLOOP.
SORT IT_COSP2 BY OBJNR KSTAR.
SELECT OBJNR
POSIT
GJAHR
WLP01
WLP02
WLP03
WLP04
WLP05
WLP06
WLP07
WLP08
WLP09
WLP10
WLP11
WLP12
INTO TABLE IT_BPPE
FROM BPPE
FOR ALL ENTRIES IN IT_COSP2
WHERE OBJNR EQ IT_COSP2-OBJNR1
AND POSIT EQ IT_COSP2-POSIT
AND GJAHR EQ RYEAR
AND VORGA IN ('KBFR','KBUE','KBUS').
LOOP AT IT_BPPE.
MOVE-CORRESPONDING IT_BPPE TO IT_BPPE1.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP01.
WHEN 2.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP02.
WHEN 3.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP03.
WHEN 4.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP04.
WHEN 5.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP05.
WHEN 6.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP06.
WHEN 7.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP07.
WHEN 8.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP08.
WHEN 9.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP09.
WHEN 10.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP10.
WHEN 11.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP11.
WHEN 12.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP12.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
COLLECT IT_BPPE1.
CLEAR PERIOD1.
CLEAR IT_BPPE1.
ENDLOOP.
ENDFORM. " GET_DATA1
*& Form PROCESS_DATA1
text
--> p1 text
<-- p2 text
FORM PROCESS_DATA1 .
LOOP AT IT_COSP2.
IT_FINAL1-GJAHR = IT_COSP2-GJAHR.
IT_FINAL1-KSTAR = IT_COSP2-KSTAR.
IT_FINAL1-TOTAL1 = IT_COSP2-TOTAL.
SELECT SINGLE KOSTL FROM CSKS INTO IT_FINAL1-KOSTL WHERE KOKRS = '1000'
AND BUKRS EQ 'NFCL'
AND OBJNR = IT_COSP2-OBJNR.
READ TABLE IT_BPPE1 WITH KEY OBJNR = IT_COSP2-OBJNR1 POSIT = IT_COSP2-POSIT.
IF SY-SUBRC EQ 0.
IT_FINAL1-TOTAL3 = IT_BPPE1-TOTAL2.
ENDIF.
SELECT SINGLE KTEXT INTO IT_FINAL1-TEXT FROM CSKU WHERE SPRAS EQ 'EN'
AND KSTAR EQ IT_COSP2-KSTAR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FINAL1-KOSTL
IMPORTING
OUTPUT = IT_FINAL1-KOSTL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FINAL1-KSTAR
IMPORTING
OUTPUT = IT_FINAL1-KSTAR.
SELECT SINGLE BEZEICH INTO IT_FINAL1-BEZEICH FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FICTR EQ IT_FINAL1-KOSTL.
IT_FINAL1-VARIANCE = IT_FINAL1-TOTAL3 - IT_FINAL1-TOTAL1.
APPEND IT_FINAL1.
CLEAR IT_FINAL1.
ENDLOOP.
SORT IT_FINAL1 BY KOSTL KSTAR.
DELETE IT_FINAL1 WHERE KOSTL IS INITIAL.
ENDFORM. " PROCESS_DATA1
*& Form BUILD_FIELDCATALOG
text
--> p1 text
<-- p2 text
FORM BUILD_FIELDCATALOG .
FIELDCATALOG-FIELDNAME = 'RFISTL'.
FIELDCATALOG-SELTEXT_M = 'Funds Center'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BEZEICH'.
FIELDCATALOG-SELTEXT_M = 'Fund Center Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'RFIPEX'.
FIELDCATALOG-SELTEXT_M = 'Commitment Item'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TEXT'.
FIELDCATALOG-SELTEXT_M = 'Commitment Item Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ALLOC'.
FIELDCATALOG-SELTEXT_M = 'Allocated Budget'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'USED'.
FIELDCATALOG-SELTEXT_M = 'Used Budget'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'REMAIN'.
FIELDCATALOG-SELTEXT_M = 'Remaining Budget'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. " BUILD_FIELDCATALOG
*& Form BUILD_FIELDCATALOG1
text
--> p1 text
<-- p2 text
FORM BUILD_FIELDCATALOG1 .
FIELDCATALOG-FIELDNAME = 'KOSTL'.
FIELDCATALOG-SELTEXT_M = 'Cost Center'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BEZEICH'.
FIELDCATALOG-SELTEXT_M = 'Cost Center Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'KSTAR'.
FIELDCATALOG-SELTEXT_M = 'G/L Account'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TEXT'.
FIELDCATALOG-SELTEXT_M = 'G/L Account Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TOTAL3'.
FIELDCATALOG-SELTEXT_M = 'Planned amount'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TOTAL1'.
FIELDCATALOG-SELTEXT_M = 'Actuals'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'VARIANCE'.
FIELDCATALOG-SELTEXT_M = 'Variance'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. " BUILD_FIELDCATALOG1
*& Form BUILD_LAYOUT
text
--> p1 text
<-- p2 text
FORM BUILD_LAYOUT .
GD_LAYOUT-NO_INPUT = 'X'.
GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " BUILD_LAYOUT
*& Form BUILD_SORT
text
--> p1 text
<-- p2 text
FORM BUILD_SORT .
DATA: GT_SORT TYPE SLIS_SORTINFO_ALV.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'RFISTL'.
GT_SORT-TABNAME = 'IT_FINAL'.
GT_SORT-SUBTOT = 'X'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'BEZEICH'.
GT_SORT-TABNAME = 'IT_FINAL'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
ENDFORM. " BUILD_SORT
*& Form BUILD_SORT1
text
--> p1 text
<-- p2 text
FORM BUILD_SORT1 .
DATA: GT_SORT TYPE SLIS_SORTINFO_ALV.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'KOSTL'.
GT_SORT-TABNAME = 'IT_FINAL'.
GT_SORT-SUBTOT = 'X'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'BEZEICH'.
GT_SORT-TABNAME = 'IT_FINAL'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
ENDFORM. " BUILD_SORT1
*& Form BUILD_EVENTS
text
--> p1 text
<-- p2 text
FORM BUILD_EVENTS .
IT_EVENT-NAME = 'TOP_OF_PAGE'.
IT_EVENT-FORM = 'TOP_OF_PAGE'.
APPEND IT_EVENT TO IT_EVENT1.
CLEAR IT_EVENT.
ENDFORM. " BUILD_EVENTS
*& Form TOP_OF_PAGE
ALV TOP-OF-PAGE
FORM TOP_OF_PAGE. "#EC CALLED
REFRESH : IT_LIST_TOP_OF_PAGE.
CLEAR : IT_LINE.
IT_LINE-TYP = 'H'.
IT_LINE-INFO = TEXT-001.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE.
IF RADIO EQ 'X'.
IT_LINE-TYP = 'S'.
IT_LINE-INFO = TEXT-101.
IF NOT FIPEX-LOW IS INITIAL.
CONCATENATE TEXT-101 '-' FIPEX-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT FIPEX-HIGH IS INITIAL.
CONCATENATE TEXT-101 '-' FIPEX-LOW 'to' FIPEX-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-102.
IF NOT RFISTL-LOW IS INITIAL.
CONCATENATE TEXT-102 '-' RFISTL-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT RFISTL-HIGH IS INITIAL.
CONCATENATE TEXT-102 '-' RFISTL-LOW 'to' RFISTL-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
ENDIF.
IF RADIO1 EQ 'X'.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-105.
IF NOT KOSTL-LOW IS INITIAL.
CONCATENATE TEXT-105 '-' KOSTL-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT KOSTL-HIGH IS INITIAL.
CONCATENATE TEXT-105 '-' KOSTL-LOW 'to' KOSTL-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-106.
IF NOT HKONT-LOW IS INITIAL.
CONCATENATE TEXT-106 '-' HKONT-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT HKONT-HIGH IS INITIAL.
CONCATENATE TEXT-106 '-' HKONT-LOW 'to' HKONT-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
ENDIF.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-103.
IF NOT PERDE-LOW IS INITIAL.
CONCATENATE TEXT-103 '-' PERDE-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT PERDE-HIGH IS INITIAL.
CONCATENATE TEXT-103 '-' PERDE-LOW 'to' PERDE-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-104.
IF NOT RYEAR IS INITIAL.
CONCATENATE TEXT-104 '-' RYEAR INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LIST_TOP_OF_PAGE.
ENDFORM. "TOP_OF_PAGE
*& Form DISPLAY_ALV_REPORT
text
--> p1 text
<-- p2 text
FORM DISPLAY_ALV_REPORT .
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
IS_LAYOUT = GD_LAYOUT
IT_EVENTS = IT_EVENT1[]
IT_FIELDCAT = FIELDCATALOG[]
IT_SORT = GD_SORT[]
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. "DISPLAY_ALV_REPORT
*& Form DISPLAY_ALV_REPORT1
text
--> p1 text
<-- p2 text
FORM DISPLAY_ALV_REPORT1 .
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
IS_LAYOUT = GD_LAYOUT
IT_EVENTS = IT_EVENT1[]
IT_FIELDCAT = FIELDCATALOG[]
IT_SORT = GD_SORT[]
TABLES
T_OUTTAB = IT_FINAL1
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-MSG -
Urgent: regarding ALV report display problem
hi,
There are 3 problems:-
1.) I had made a ALV report in which i have to display 'POSTING DATE' (iseg-budat) when we execute the report i.e. it should be displayed as PERIOD :- _______ to _______ on alv report ..
2.)the 2nd problem is dat when i use the ' wa_fieldcat-no_zero = 'X'. It eliminates all the leading zeros which are present which is okay when i it displays material no.. but the problem is dat it also deletes the other fields where the values are to be zeros.
i had used this FM:-
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ITS1-MATNR
IMPORTING
OUTPUT = ITS1-MATNR.
so that only matnr field are to be 0's.
3.) I want to delete the rows which use to contain the values 0's as there are no calculations are performing as these are displayed .
ANYbody having solution of this problem ,plzzzz provide the soluion of it as it is most urgent to me and dat person will definately rewarded.
regards,
ric.shi kiran,
thanks for ur response. here is d code which i am using it and plzz help me to figure out where i have to make changes:-
REPORT ZTEST03.
TABLES: ISEG,MARA.
TYPE-POOLS : SLIS.
INTERNAL TABLE FOR INVENTORY STOCK *****************
DATA: BEGIN OF ITS1 OCCURS 0,
MATNR LIKE ISEG-MATNR,
MEINS LIKE ISEG-MEINS,
MENGE LIKE ISEG-MENGE,
WRTZL LIKE ISEG-WRTZL,
BUCHM LIKE ISEG-BUCHM,
WRTBM LIKE ISEG-WRTBM,
WERKS LIKE ISEG-WERKS,
BUDAT LIKE ISEG-BUDAT,
MTART LIKE MARA-MTART,
ITEMDESC LIKE MAKT-MAKTX,
DIFFQTY LIKE ISEG-BUCHM,
DIFFVALUE LIKE ISEG-WRTBM,
END OF ITS1.
data: t_heading type slis_t_listheader.
SELECTION-SCREEN BEGIN OF BLOCK PAR1 WITH FRAME TITLE TEXT-001.
*********PARAMETERS*********
PARAMETERS : PLANT LIKE ISEG-WERKS OBLIGATORY.
*********SELECTION SCREEN OPTIONS*********
SELECT-OPTIONS : R_DATE FOR ISEG-BUDAT,
M_TYPE FOR MARA-MTART,
IT_M FOR MARA-MATNR.
*********DEFINING VARIABLES*********
SELECTION-SCREEN END OF BLOCK par1.
TOP-OF-PAGE.
PERFORM PG_HEADER.
START-OF-SELECTION.
SELECT DISTINCT A~MATNR A~MEINS A~MENGE A~WRTZL A~BUCHM A~WRTBM A~WERKS A~BUDAT B~MTART
FROM ISEG AS A INNER JOIN MARA AS B ON B~MATNR = A~MATNR
INTO CORRESPONDING FIELDS OF TABLE ITS1 WHERE B~MATNR = A~MATNR AND B~MEINS = A~MEINS AND A~WERKS = PLANT AND A~BUDAT IN R_DATE AND B~MTART IN M_TYPE AND B~MATNR IN IT_M.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ITS1-MATNR
IMPORTING
OUTPUT = ITS1-MATNR.
SORT ITS1 BY MATNR.
DELETE ADJACENT DUPLICATES FROM ITS1 WHERE MENGE = 0 AND BUCHM = 0.
LOOP AT ITS1.
ITS1-DIFFQTY = ITS1-MENGE - ITS1-BUCHM.
ITS1-DIFFVALUE = ITS1-WRTZL - ITS1-WRTBM.
SELECT SINGLE MAKTX FROM MAKT INTO ITS1-ITEMDESC WHERE MATNR = ITS1-MATNR.
MODIFY ITS1.
ENDLOOP.
PERFORM PRN_SMSTOCK_ALV.
WRITING DATA FROM D TABLES**********
FORM PG_HEADER.
WRITE : 'PHYSICAL INVENTORY AUDIT REPORT PLANT : ', PLANT.
ENDFORM.
*& Form PRN_SMSTOCK_ALV
text
--> p1 text
<-- p2 text
form PRN_SMSTOCK_ALV .
data: w_title type lvc_title,
w_repid type syrepid,
w_comm type slis_formname,
w_status type slis_formname,
x_layout type slis_layout_alv,
t_event type slis_t_event,
t_fieldcat type slis_t_fieldcat_alv,
t_sort type slis_t_sortinfo_alv.
refresh t_fieldcat.
refresh t_event.
refresh t_sort.
clear x_layout.
clear w_title.
perform set_fieldcat2 using:
1 'MTART' 'MTART' 'MARA' '15' space 'MATERIAL TYPE' space space space space space space space space SPACE t_fieldcat 'L' 'C',
2 'MATNR' 'MATNR' 'MARA' '13' space 'MATERIAL NO. ' space space space space space space space space SPACE t_fieldcat 'R' 'C',
3 'ITEMDESC' 'MAKTX' 'MAKT' '25' space 'MATERIAL DESCRIPTION' space space space space space space space space SPACE t_fieldcat 'L' 'C',
4 'MEINS' 'MEINS' 'MARA' '5' space 'UOM' space space space space space space space space SPACE t_fieldcat 'C' 'C',
5 'MENGE' 'MENGE' 'ISEG' '13' space 'ORG.INV.QTY' space space space space space space space space SPACE t_fieldcat 'R' 'C',
6 'WRTZL' 'WRTZL' 'ISEG' '13' space 'ORG.INV.VALUE' space space space space space space space space SPACE t_fieldcat 'R' 'C',
7 'BUCHM' 'BUCHM' 'ISEG' '13' space 'PHY.INV.QTY' space space space space space space space space SPACE t_fieldcat 'R' 'C',
8 'WRTBM' 'WRTBM' 'ISEG' '13' space 'PHY.INV.VALUE' space space space space space space space space SPACE t_fieldcat 'R' 'C',
9 'DIFFQTY' 'MENGE' 'ISEG' '13' space 'DIFF.INV.QTY' space space space space space space space space SPACE t_fieldcat 'R' 'C',
10 'DIFFVALUE' 'WRTZL' 'ISEG' '13' space 'DIFF.INV.VALUE' space space space space space space space space SPACE t_fieldcat SPACE 'P'.
x_layout-zebra = 'X'.
perform set_top_page_heading using t_heading t_event.
perform set_events using t_event.
w_status = ''.
w_repid = sy-repid.
w_comm = 'USER_COMMAND'.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = w_repid
it_fieldcat = t_fieldcat
i_Callback_top_of_page = 'Top-of-page'
is_layout = x_layout
it_sort = t_sort
i_callback_pf_status_set = w_status
i_callback_user_command = w_comm
i_save = 'X'
it_events = t_event
i_grid_title = w_title
tables
t_outtab = ITS1
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.
FORM set_fieldcat2 USING
p_colpos p_fieldname p_ref_fieldname p_ref_tabname
p_outputlen p_noout
p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt
p_hotspot p_showasicon p_checkbox p_edit
p_dosum
t_fieldcat TYPE slis_t_fieldcat_alv
P_JUST
P_FTYPE.
DATA: wa_fieldcat TYPE slis_fieldcat_alv.
CLEAR wa_fieldcat.
General settings
wa_fieldcat-fieldname = p_fieldname.
wa_fieldcat-no_zero = 'X'.
wa_fieldcat-col_pos = p_colpos.
wa_fieldcat-no_out = p_noout.
wa_fieldcat-hotspot = p_hotspot.
wa_fieldcat-checkbox = p_checkbox.
wa_fieldcat-icon = p_showasicon.
wa_fieldcat-do_sum = p_dosum.
Set output length.
IF NOT p_outputlen IS INITIAL.
wa_fieldcat-outputlen = p_outputlen.
ENDIF.
Set text headers.
IF NOT p_seltext_m IS INITIAL.
wa_fieldcat-seltext_m = p_seltext_m.
ENDIF.
IF NOT p_seltext_l IS INITIAL.
wa_fieldcat-seltext_l = p_seltext_l.
ENDIF.
IF NOT p_seltext_s IS INITIAL.
wa_fieldcat-seltext_s = p_seltext_s.
ENDIF.
IF NOT p_reptext_ddic IS INITIAL.
wa_fieldcat-reptext_ddic = p_reptext_ddic.
ENDIF.
IF NOT p_ddictxt IS INITIAL.
wa_fieldcat-ddictxt = p_ddictxt.
ENDIF.
IF NOT P_JUST IS INITIAL.
WA_FIELDCAT-JUST = P_JUST.
ENDIF.
Set as editable or not.
IF NOT p_edit IS INITIAL.
wa_fieldcat-input = 'X'.
wa_fieldcat-edit = 'X'.
ENDIF.
APPEND wa_fieldcat TO t_fieldcat.
ENDFORM. "set_fieldcat2
======================== Subroutines called by ALV ================
*& Form top_of_page
Called on top_of_page ALV event.
Prints the heading.
form top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_heading.
ENDFORM.
form set_top_page_heading using t_heading type slis_t_listheader
t_events type slis_t_event.
data: x_heading type slis_listheader,
x_event type line of slis_t_event.
Report title
clear t_heading[].
clear x_heading.
x_heading-typ = 'H'.
x_heading-info = 'PHYSICAL INVENTORY AUDIT REPORT'.
append x_heading to t_heading.
Plant Name
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'PLANT: '.
x_heading-info = its1-werks.
append x_heading to t_heading.
Posting Date
*clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'POSTING DATE: '.
x_heading-info = ITS1-BUDAT.
append x_heading to t_heading.
Control Date
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'CONTROL No: '.
x_heading-info = its1-werks.
append x_heading to t_heading.
Control date
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'CONTROL DATE: '.
x_heading-info = its1-werks.
append x_heading to t_heading.
User who is running the report
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'User: '.
x_heading-info = sy-uname.
append x_heading to t_heading.
Date of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Date: '.
write sy-datum to x_heading-info.
append x_heading to t_heading.
Time of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Time: '.
write sy-uzeit to x_heading-info.
append x_heading to t_heading.
Top of page event
x_event-name = slis_ev_top_of_page.
x_event-form = 'TOP_OF_PAGE'.
append x_event to t_events.
endform.
form set_events using t_events type slis_t_event.
data: x_event type line of slis_t_event.
endform.
plzzz help me out as it is most urgent to me.
regards,
ric.s -
hi all,
i have an issue in which i fetch data from mkpf and mseg tables into my final internal table everytin is fine and i want to display the data in alv and download it to excel sheet so the problem is while im running the prog im gettin an error in reuse_alv_list_display the code is as follows:
it_final_tab is my final internal table
wt_fieldcat is for building field catalog
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = wlv_repid
IS_LAYOUT = wls_layout
IT_FIELDCAT = wt_fieldcat[]
I_DEFAULT = 'X'
I_SAVE = 'X'
IT_EVENTS = wlt_events[]
TABLES
T_OUTTAB = it_final_tab[]
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
the error is "field string is not yet set". its eatin my brain so can any one plz help me out. Point are rewarded for correct solution
thanks in advance
anupama.Hi Anupama,
Fieldcatalog information through your internal table wt_fieldcat[]
is not being passed properly. That is causing the problem.
Can I have ur fullcode so that we can check it out. Otherwise refer sample code on ALV grid.
REPORT zvenkat_alv_grid.
TABLES:t001.
"Types
TYPES:
BEGIN OF t_1001,
bukrs TYPE t001-bukrs,
butxt TYPE t001-butxt,
ort01 TYPE t001-ort01,
land1 TYPE t001-land1,
END OF t_1001.
"Work area
DATA:
w_t001 TYPE t_1001.
"Internal table
DATA:
i_t001 TYPE STANDARD TABLE OF t_1001.
" ALV Declarations
* Types Pools
TYPE-POOLS:
slis.
* Types
TYPES:
t_fieldcat TYPE slis_fieldcat_alv,
t_events TYPE slis_alv_event,
t_layout TYPE slis_layout_alv.
* Workareas
DATA:
w_fieldcat TYPE t_fieldcat,
w_events TYPE t_events,
w_layout TYPE t_layout.
* Internal Tables
DATA:
i_fieldcat TYPE STANDARD TABLE OF t_fieldcat,
i_events TYPE STANDARD TABLE OF t_events.
*& start of selection
START-OF-SELECTION.
PERFORM get_data.
*& end-of-selection.
END-OF-SELECTION.
PERFORM build_fieldcatlog.
PERFORM build_events.
PERFORM build_layout.
PERFORM list_display.
*& Form get_data
FORM get_data .
SELECT bukrs
butxt
ort01
land1
FROM t001
INTO TABLE i_t001
UP TO 30 ROWS.
ENDFORM. " get_data
*& Form build_fieldcatlog
FORM build_fieldcatlog .
CLEAR:w_fieldcat,i_fieldcat[].
PERFORM build_fcatalog USING:
'BUKRS' 'I_T001' 'BUKRS',
'BUTXT' 'I_T001' 'BUTXT',
'ORT01' 'I_T001' 'ORT01',
'LAND1' 'I_T001' 'LAND1'.
ENDFORM. "BUILD_FIELDCATLOG
*& Form BUILD_FCATALOG
FORM build_fcatalog USING l_field l_tab l_text.
w_fieldcat-fieldname = l_field.
w_fieldcat-tabname = l_tab.
w_fieldcat-seltext_m = l_text.
APPEND w_fieldcat TO i_fieldcat.
CLEAR w_fieldcat.
ENDFORM. " build_fieldcatlog
*& Form build_events
* text
FORM build_events.
CLEAR :
w_events, i_events[].
w_events-name = 'TOP_OF_PAGE'."Event Name
w_events-form = 'TOP_OF_PAGE'."Callback event subroutine
APPEND w_events TO i_events.
CLEAR w_events.
ENDFORM. "build_events
*& Form build_layout
FORM build_layout .
w_layout-colwidth_optimize = 'X'.
w_layout-zebra = 'X'.
ENDFORM. " build_layout
*& Form list_display
FORM list_display .
DATA:
l_program TYPE sy-repid.
l_program = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = l_program
is_layout = w_layout
it_fieldcat = i_fieldcat
it_events = i_events
TABLES
t_outtab = i_t001
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 top_of_page
FORM top_of_page.
DATA :
li_header TYPE slis_t_listheader,
w_header LIKE LINE OF li_header.
DATA:
l_date TYPE char10.
WRITE sy-datum TO l_date.
w_header-typ = 'H'.
CONCATENATE sy-repid ':' 'From Date' l_date INTO w_header-info SEPARATED BY space.
APPEND w_header TO li_header.
CLEAR w_header.
w_header-typ = 'S'.
w_header-info = sy-title.
APPEND w_header TO li_header.
CLEAR w_header.
w_header-typ = 'A'.
w_header-info = sy-uname.
APPEND w_header TO li_header.
CLEAR w_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = li_header.
ENDFORM. "top_of_page
I hope that it helps you.
Regards,
Venkat.O -
Hi Everyone,
I want to print a logo in the alv grid display.
I have used the "reuse_alv_commentary_write" fm.
The logo is also displaying at the right top corner.
But I want to get it printed at the left top corner.
please give me a solution. this is urgent
With Thanks and Best Regards
V.RavishankarHi Ravi,
You can do that. Try like this,
Concatenate the Logo name with ASCII values of the Spaces following it(LOGO NAME) and put it in an Field which you are going to pass to that function Module <b>reuse_alv_commentary_write[\b]. ASCII Value for Space can be entered as ALT+255. place around five to 10 spaces and then try it must work i hope.
Thanks and Regards,
Prashanth -
Hi all,
I am using alv to display Currency fields in a tax return report.........I want to display the sum of a perticular column or all the columns when i press the total button from alv selecting the required columns. But its coming only for first two columns not for all. Please help.
Regards.Hi,
This ALV program have all the basic report requirements such as page heading, page no, sub-total and a grand total.
* This is a basic ALV with the followings:-
* - Page Heading
* - Page No
* - Sub-Total
* - Grand Total
REPORT ZALV.
TYPE-POOLS: SLIS.
DATA: G_REPID LIKE SY-REPID,
GS_PRINT TYPE SLIS_PRINT_ALV,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
GT_EVENTS TYPE SLIS_T_EVENT,
GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
FIELDCAT_LN LIKE LINE OF GT_FIELDCAT,
COL_POS TYPE I.
DATA: BEGIN OF ITAB,
FIELD1(5) TYPE C,
FIELD2(5) TYPE C,
FIELD3(5) TYPE P DECIMALS 2,
END OF ITAB.
DATA: BEGIN OF ITAB1 OCCURS 0.
INCLUDE STRUCTURE ITAB.
DATA: END OF ITAB1.
DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0.
INCLUDE STRUCTURE ITAB.
DATA: END OF ITAB_FIELDCAT.
* Print Parameters
PARAMETERS:
P_PRINT AS CHECKBOX DEFAULT ' ', "PRINT IMMEDIATE
P_NOSINF AS CHECKBOX DEFAULT 'X', "NO SELECTION INFO
P_NOCOVE AS CHECKBOX DEFAULT ' ', "NO COVER PAGE
P_NONEWP AS CHECKBOX DEFAULT ' ', "NO NEW PAGE
P_NOLINF AS CHECKBOX DEFAULT 'X', "NO PRINT LIST INFO
P_RESERV TYPE I. "NO OF FOOTER LINE
INITIALIZATION.
G_REPID = SY-REPID.
PERFORM PRINT_BUILD USING GS_PRINT. "Print PARAMETERS
START-OF-SELECTION.
* TEST DATA
MOVE 'TEST1' TO ITAB1-FIELD1.
MOVE 'TEST1' TO ITAB1-FIELD2.
MOVE '10.00' TO ITAB1-FIELD3.
APPEND ITAB1.
MOVE 'TEST2' TO ITAB1-FIELD1.
MOVE 'TEST2' TO ITAB1-FIELD2.
MOVE '20.00' TO ITAB1-FIELD3.
APPEND ITAB1.
DO 50 TIMES.
APPEND ITAB1.
ENDDO.
END-OF-SELECTION.
PERFORM BUILD.
PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS.
PERFORM COMMENT_BUILD CHANGING GT_LIST_TOP_OF_PAGE.
PERFORM CALL_ALV.
FORM BUILD.
* DATA FIELD CATALOG
* Explain Field Description to ALV
DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV.
CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD1'.
FIELDCAT_LN-TABNAME = 'ITAB1'.
*FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT
FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY
FIELDCAT_LN-NO_OUT = ' '.
FIELDCAT_LN-SELTEXT_L = 'HEAD1'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.
CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD2'.
FIELDCAT_LN-TABNAME = 'ITAB1'.
FIELDCAT_LN-NO_OUT = 'X'.
FIELDCAT_LN-SELTEXT_L = 'HEAD2'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.
CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD3'.
FIELDCAT_LN-TABNAME = 'ITAB1'.
FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "<- REF FIELD IN THE DICTIONNARY
FIELDCAT_LN-REF_TABNAME = 'MSEG'. "<- REF TABLE IN THE DICTIONNARY
FIELDCAT_LN-NO_OUT = ' '.
FIELDCAT_LN-DO_SUM = 'X'. "SUM UPON DISPLAY
APPEND FIELDCAT_LN TO GT_FIELDCAT.
* DATA SORTING AND SUBTOTAL
DATA: GS_SORT TYPE SLIS_SORTINFO_ALV.
CLEAR GS_SORT.
GS_SORT-FIELDNAME = 'FIELD1'.
GS_SORT-SPOS = 1.
GS_SORT-UP = 'X'.
GS_SORT-SUBTOT = 'X'.
APPEND GS_SORT TO GT_SORT.
CLEAR GS_SORT.
GS_SORT-FIELDNAME = 'FIELD2'.
GS_SORT-SPOS = 2.
GS_SORT-UP = 'X'.
*GS_SORT-SUBTOT = 'X'.
APPEND GS_SORT TO GT_SORT.
ENDFORM.
FORM CALL_ALV.
* ABAP List Viewer
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = G_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME = 'ITAB1'
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
IT_SORT = GT_SORT[]
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = GT_EVENTS[]
* IT_EVENT_EXIT =
IS_PRINT = GS_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 = ITAB1
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM.
* HEADER FORM
FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT.
CONSTANTS:
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
*GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = LT_EVENTS.
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO LT_EVENTS.
ENDIF.
* define END_OF_PAGE event
* READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
* INTO LS_EVENT.
* IF SY-SUBRC = 0.
* MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.
* APPEND LS_EVENT TO LT_EVENTS.
* ENDIF.
ENDFORM.
FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: GS_LINE TYPE SLIS_LISTHEADER.
CLEAR GS_LINE.
GS_LINE-TYP = 'H'.
GS_LINE-INFO = 'HEADER 1'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
CLEAR GS_LINE.
GS_LINE-TYP = 'S'.
GS_LINE-KEY = 'STATUS 1'.
GS_LINE-INFO = 'INFO 1'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
GS_LINE-KEY = 'STATUS 2'.
GS_LINE-INFO = 'INFO 2'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
* CLEAR GS_LINE.
* GS_LINE-TYP = 'A'.
* GS_LINE-INFO = 'ACTION'.
* APPEND GS_LINE TO GT_TOP_OF_PAGE.
ENDFORM.
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED.
ENDFORM.
FORM END_OF_PAGE.
WRITE at (sy-linsz) sy-pagno CENTERED.
ENDFORM.
* PRINT SETTINGS
FORM PRINT_BUILD USING LS_PRINT TYPE SLIS_PRINT_ALV.
LS_PRINT-PRINT = P_PRINT. "PRINT IMMEDIATE
LS_PRINT-NO_PRINT_SELINFOS = P_NOSINF. "NO SELECTION INFO
LS_PRINT-NO_COVERPAGE = P_NOCOVE. "NO COVER PAGE
LS_PRINT-NO_NEW_PAGE = P_NONEWP.
LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF. "NO PRINT LIST INFO
LS_PRINT-RESERVE_LINES = P_RESERV.
ENDFORM.
*END OF ZALV PROGRAM
Regards
Sudheer -
Hi all,
My user command is not working in my program.
When i am clicking in any value on any filed its not working out. I have debuuged also i m not getting.
<code>
*& Report ZVEN_PRA
REPORT zven_pra
NO STANDARD PAGE HEADING
MESSAGE-ID zven.
*&Internal table declarations
DATA:BEGIN OF it_ekko OCCURS 0,
ebeln TYPE ekko-ebeln, "po number
bukrs TYPE ekko-bukrs, "company code
bstyp TYPE ekko-bstyp, "po category
lifnr TYPE ekko-lifnr, "vendor no
ekorg TYPE ekko-ekorg, "pur org
ekgrp TYPE ekko-ekgrp, "pur group
END OF it_ekko.
DATA:BEGIN OF it_ekpo OCCURS 0,
ebelp TYPE ekpo-ebelp,"item of po number
matnr TYPE ekpo-matnr,"material no
werks TYPE ekpo-werks,"plant
menge TYPE ekpo-menge,"po qty
meins TYPE ekpo-meins,"order unit
netwr TYPE ekpo-netwr,"net order value
END OF it_ekpo.
DATA:v_field(50) TYPE c,
v_value TYPE ekko-ebeln.
DATA:v_bukrs TYPE ekko-bukrs.
TYPE-POOLS:slis.
DATA:it_fcat TYPE slis_t_fieldcat_alv,
wa_fcat TYPE slis_fieldcat_alv,
layout TYPE slis_layout_alv,
it_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader.
DATA : it_event TYPE slis_t_event.
DATA:it_fcat2 TYPE slis_t_fieldcat_alv,
wa_fcat2 TYPE slis_fieldcat_alv,
gs_selfield TYPE slis_selfield,
g_exit(1) TYPE c,
gs_private TYPE slis_data_caller_exit.
*to store the variants.
data:ws_x_variant like disvariant,
ws_variant like disvariant,
ws_save type c,
ws_exit type c.
CONSTANTS :
c_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE',
c_usercommand TYPE slis_formname VALUE 'USER_COMMAND',
c_pf_status TYPE slis_formname VALUE 'PF_STATUS_SET'.
DATA:IT_HEADER TYPE SLIS_T_LISTHEADER.
*&Selection-Screen declarations
TABLES:ekko.
SELECTION-SCREEN BEGIN OF BLOCK e WITH FRAME TITLE text-002.
SELECT-OPTIONS:s_bukrs FOR ekko-bukrs,
s_lifnr FOR ekko-lifnr.
SELECTION-SCREEN END OF BLOCK e.
*validate the company code
AT SELECTION-SCREEN.
PERFORM validate_code.
START-OF-SELECTION.
PERFORM get_data_ekko.
PERFORM build_field_catalog.
END-OF-SELECTION.
PERFORM get_layout.
PERFORM fill_event.
perform fill_variant.
PERFORM print_data_ekko.
*& Form get_data_ekko
text
FORM get_data_ekko .
SELECT ebeln
bukrs
bstyp
lifnr
ekorg
ekgrp
FROM ekko
INTO TABLE it_ekko
WHERE bukrs IN s_bukrs
AND lifnr IN s_lifnr.
IF sy-subrc = 0.
SORT it_ekko BY ebeln.
ENDIF.
ENDFORM. " get_data_ekko
*& Form print_data_ekko
text
FORM print_data_ekko .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = TOP_1
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_BACKGROUND_ID = ' '
i_grid_title = 'ALVREPORT'
I_GRID_SETTINGS = I_GRID_SETTINGS
is_layout = layout
it_fieldcat = it_fcat[]
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
it_events = it_event[]
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
t_outtab = it_ekko
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
*loop at it_ekko.
*write:/ it_ekko-ebeln hotspot on,15 it_ekko-bukrs,25 it_ekko-bstyp,
35 it_ekko-lifnr,45 it_ekko-ekorg,55 it_ekko-ekgrp.
hide it_ekko-ebeln.
*endloop.
ENDFORM. " print_data_ekko
*& Form get_data_ekpo
text
FORM get_data_ekpo .
IF NOT it_ekko[] IS INITIAL.
SELECT ebelp
matnr
werks
menge
meins
netwr
FROM ekpo
INTO TABLE it_ekpo
WHERE ebeln = it_ekko-ebeln.
ENDIF.
ENDFORM. " get_data_ekpo
*& Form validate_code
text
FORM validate_code .
IF NOT s_bukrs[] IS INITIAL.
SELECT SINGLE bukrs
INTO v_bukrs
FROM ekko
WHERE bukrs IN s_bukrs.
IF sy-subrc <> 0.
MESSAGE e001. "invalid company code
ENDIF.
ENDIF.
ENDFORM. " validate_code
*& Form build_field_catalog
text
FORM build_field_catalog .
CLEAR wa_fcat.
*CLEAR IT_FCAT.
wa_fcat-emphasize = 'C112'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-fieldname = 'EBELN'.
wa_fcat-col_pos = '1'.
wa_fcat-seltext_l = 'PO NUMBER'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
*CLEAR IT_FCAT.
wa_fcat-emphasize = 'C212'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-fieldname = 'BUKRS'.
wa_fcat-col_pos = '2'.
wa_fcat-seltext_l = 'COM CODE'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
*CLEAR IT_FCAT.
wa_fcat-emphasize = 'C312'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-fieldname = 'BSTYP'.
wa_fcat-col_pos = '3'.
wa_fcat-seltext_l = 'PO CATEGORY'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
*CLEAR IT_FCAT.
wa_fcat-emphasize = 'C412'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-fieldname = 'LIFNR'.
wa_fcat-col_pos = '4'.
wa_fcat-seltext_l = 'VENDOR NUMBER'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
*CLEAR IT_FCAT.
wa_fcat-emphasize = 'C512'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-fieldname = 'EKORG'.
wa_fcat-col_pos = '5'.
wa_fcat-seltext_l = 'PO ORGAN'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
*CLEAR IT_FCAT.
wa_fcat-emphasize = 'C612'.
wa_fcat-tabname = 'IT_EKKO'.
wa_fcat-fieldname = 'EBGRP'.
wa_fcat-col_pos = '6'.
wa_fcat-seltext_l = 'PO GROUP'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
ENDFORM. " build_field_catalog
*& Form get_layout
text
FORM get_layout .
layout-zebra = 'X'.
ENDFORM. " get_layout
*& Form get_headerin_alv
text
-->P_IT_HEADER text
FORM top_of_page .
DATA:it_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader.
CLEAR wa_header.
wa_header-typ = 'H'.
wa_header-info = 'venkatakrishna'.
APPEND wa_header TO it_header.
CLEAR wa_header.
wa_header-typ = 'S'.
wa_header-info = 'SOFTWARE ENGINEER'.
APPEND wa_header TO it_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_header
I_LOGO = I_LOGO
I_END_OF_LIST_GRID = I_END_OF_LIST_GRID
I_ALV_FORM = I_ALV_FORM
ENDFORM. "TOP_OF_PAGE
*& Form user_command
text
-->RF_UCOMM text
-->RS_SELFIELD text
FORM user_command USING rf_ucomm TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE rf_ucomm.
WHEN '&IC1'.
READ TABLE it_ekko INDEX rs_selfield-tabindex.
IF sy-subrc = 0.
PERFORM get_data_ekpo.
PERFORM PRINT_DATA_EKPO.
PERFORM build_field_catalog2.
PERFORM print_field_data.
ENDIF.
ENDCASE.
ENDFORM. "user_command
*& Form BUILD_FIELD_CATALOG2
text
FORM build_field_catalog2 .
CLEAR: it_fcat,wa_fcat.
CLEAR: wa_fcat2,it_fcat2.
wa_fcat2-tabname = 'IT_EKPO'.
wa_fcat2-fieldname = 'EBELP'.
wa_fcat2-col_pos = '1'.
wa_fcat2-seltext_l = 'item of po number'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
wa_fcat2-tabname = 'IT_EKPO'.
wa_fcat2-fieldname = 'MATNR'.
wa_fcat2-col_pos = '2'.
wa_fcat2-seltext_l = 'material no'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
wa_fcat2-tabname = 'IT_EKPO'.
wa_fcat2-fieldname = 'WERKS'.
wa_fcat2-col_pos = '3'.
wa_fcat2-seltext_l = 'PLANT'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
wa_fcat2-tabname = 'IT_EKPO'.
wa_fcat2-fieldname = 'MENGE'.
wa_fcat2-col_pos = '4'.
wa_fcat2-seltext_l = 'PO QTY'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
wa_fcat2-tabname = 'IT_EKPO'.
wa_fcat2-fieldname = 'MEINS'.
wa_fcat2-col_pos = '5'.
wa_fcat2-seltext_l = 'ORDER UNIT'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
wa_fcat2-tabname = 'IT_EKPO'.
wa_fcat2-fieldname = 'NETWR'.
wa_fcat2-col_pos = '6'.
wa_fcat2-seltext_l = 'net order value'.
APPEND wa_fcat2 TO it_fcat2.
ENDFORM. " BUILD_FIELD_CATALOG2
*& Form PRINT_FIELD_DATA
text
--> p1 text
<-- p2 text
FORM print_field_data .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-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 = 'EKPO'
I_BACKGROUND_ID = ' '
i_grid_title = 'INTERACTIVE REPORT'
I_GRID_SETTINGS = I_GRID_SETTINGS
IS_LAYOUT = IS_LAYOUT
it_fieldcat = it_fcat2
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = ws_x_variant
IT_EVENTS = IT_EVENTS
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
t_outtab = it_ekpo
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
*USE THE POPUP_TO_CONFIRM FUNCTION MODULE FOR SELECT
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
I_TITLE = 'venkat'
I_SELECTION = 'X'
I_ALLOW_NO_SELECTION = I_ALLOW_NO_SELECTION
I_ZEBRA = 'X'
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_CHECKBOX_FIELDNAME = I_CHECKBOX_FIELDNAME
I_LINEMARK_FIELDNAME = I_LINEMARK_FIELDNAME
I_SCROLL_TO_SEL_LINE = 'X'
i_tabname = 'EKPO'
i_structure_name = 'EKPO'
it_fieldcat = it_fcat2
IT_EXCLUDING = IT_EXCLUDING
I_CALLBACK_PROGRAM = I_CALLBACK_PROGRAM
I_CALLBACK_USER_COMMAND = I_CALLBACK_USER_COMMAND
is_private = gs_private
IMPORTING
es_selfield = gs_selfield
e_exit = g_exit
TABLES
t_outtab = IT_EKPO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
ENDFORM. " PRINT_FIELD_DATA
*& Form fill_event
text
--> p1 text
<-- p2 text
FORM fill_event .
DATA : st_event TYPE slis_alv_event.
*- Clear.
CLEAR : st_event, it_event[].
*- Local variable
DATA : l_tabix TYPE sy-tabix.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_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 event table
READ TABLE it_event WITH KEY name = slis_ev_top_of_page
INTO st_event.
*- Top of page event
*- Clear
CLEAR l_tabix.
l_tabix = sy-tabix.
*- Check subrc
IF sy-subrc = 0.
st_event-form = c_top_of_page.
*- Modify
MODIFY it_event FROM st_event INDEX l_tabix.
*- Clear
CLEAR st_event.
ENDIF.
*- User command event
*- Read event table
READ TABLE it_event WITH KEY name = slis_ev_user_command
INTO st_event.
*- Clear
CLEAR l_tabix.
l_tabix = sy-tabix.
*- Check subrc
IF sy-subrc = 0.
st_event-form = c_usercommand.
*- Modify
MODIFY it_event FROM st_event INDEX l_tabix.
*- Clear
CLEAR st_event.
ENDIF.
ENDFORM. " fill_event
*& Form GET_HEADER
text
*& Form fill_variant
text
form fill_variant .
ws_x_variant-report = 'ZVEN_PRA'.
endform. " fill_variant
</code>
Thanks,
surajThank u frnds i m getting it now.
I M GETTING PROBLEM IN THIS PROGRAM AGAIN.
<CODE>Report Z_50840_ALV
Line-size 80
Line-count 64
Message-id ZZ
No Standard Page Heading.
Copyright statement *
@ copyright 2007 by Intelligroup Inc. *
Program Details *
Program Name: Z_50840_ALV
Date : 19.07.2007
Author : Vasudevaraman V
Description : Test Program
Transport No:
Change Log *
Date :
Author :
Description :
Transport No:
Tables *
Tables: vbrk.
Type Pools *
Type-Pools: SLIS.
Variables *
Data: GV_REPID TYPE SY-REPID.
Structures *
Data: BEGIN OF GIT_VBRK OCCURS 0,
VBELN LIKE VBRK-VBELN, "Billing Document
FKART LIKE VBRK-FKART, "Billing Type
KNUMV LIKE VBRK-KNUMV, "Number of the document condition
BUKRS LIKE VBRK-BUKRS, "Company code
NETWR LIKE VBRK-NETWR, "Net value in document currency
WAERK LIKE VBRK-WAERK, "SD document currency in basic list
END OF GIT_VBRK,
GIT_FCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FCAT TYPE slis_fieldcat_alv,
GIT_EVENTS TYPE SLIS_T_EVENT,
WA_EVENTS TYPE SLIS_ALV_EVENT.
Field Symbols *
Field-symbols: <fs_xxxx>.
Selection Screen *
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_VBELN FOR VBRK-VBELN.
PARAMETERS: LISTDISP RADIOBUTTON GROUP G1,
GRIDDISP RADIOBUTTON GROUP G1 DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK B1.
Initialization *
Initialization.
GV_REPID = SY-REPID.
At Selection Screen *
At selection-screen.
Start Of Selection *
Start-of-selection.
SET PF-STATUS 'ABC'(001).
PERFORM GET_BILLING_DETAILS.
PERFORM FIELD_CATALOGUE.
PERFORM GET_EVENTS.
End Of Selection *
End-of-selection.
PERFORM DISPLAY_BILLING_DETAILS.
Top Of Page *
Top-of-page.
End Of Page *
End-of-page.
*& Form GET_BILLING_DETAILS
text
--> p1 text
<-- p2 text
FORM GET_BILLING_DETAILS .
SELECT VBELN
FKART
KNUMV
BUKRS
NETWR
WAERK
FROM VBRK
INTO TABLE GIT_VBRK
WHERE VBELN IN S_VBELN.
IF SY-SUBRC = 0.
SORT GIT_VBRK BY VBELN.
ENDIF.
ENDFORM. " GET_BILLING_DETAILS
*& Form FIELD_CATALOGUE
text
--> p1 text
<-- p2 text
FORM FIELD_CATALOGUE .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = GV_REPID
I_INTERNAL_TABNAME = 'GIT_VBRK'
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = GV_REPID
I_BYPASSING_BUFFER = 'X'
I_BUFFER_ACTIVE = ' '
CHANGING
CT_FIELDCAT = GIT_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.
ENDFORM. " FIELD_CATALOGUE
*& Form DISPLAY_BILLING_DETAILS
text
--> p1 text
<-- p2 text
FORM DISPLAY_BILLING_DETAILS .
IF LISTDISP = 'X'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = 'X'
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GV_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
IS_LAYOUT = IS_LAYOUT
IT_FIELDCAT = GIT_FCAT
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = GIT_EVENTS
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER = IR_SALV_LIST_ADAPTER
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB = GIT_VBRK
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.
ELSE.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = 'X'
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GV_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_GRID_TITLE
I_GRID_SETTINGS = I_GRID_SETTINGS
IS_LAYOUT = IS_LAYOUT
IT_FIELDCAT = GIT_FCAT
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = GIT_EVENTS
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB = GIT_VBRK
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.
ENDIF.
ENDFORM. " DISPLAY_BILLING_DETAILS
*& Form GET_EVENTS
text
--> p1 text
<-- p2 text
FORM GET_EVENTS .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = GIT_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.
LOOP AT GIT_EVENTS INTO WA_EVENTS.
CASE WA_EVENTS-NAME.
WHEN 'USER_COMMAND'.
WA_EVENTS-FORM = 'USER_COMMAND'.
ENDCASE.
MODIFY GIT_EVENTS FROM WA_EVENTS INDEX SY-TABIX.
ENDLOOP.
ENDFORM. " GET_EVENTS
FORM USER_COMMAND.
WRITE :/ 'USER_COMMAND'.
ENDFORM.</CODE>.
REGARDS,
SURAJ -
Hi,
I am trying to add header to my ALV grid report using the FM REUSE_ALV_COMMENTARY_WRITE'
It is displaying a blank window.
My code is
*& Report YGTSPRODUCT
*& Author : Krishna Chaitanya Nandimandalam
*& Desc : Display Products by Product Characteristics
REPORT YGTSPRODUCT.
*& Structure declarations
type-pools : slis.
TYPES : BEGIN OF TY_CTSNUMC,
GUID_CTSNUMC TYPE /SAPSLL/CTSNUMC-GUID_CTSNUMC, "Primary Key as GUID in "RAW" Format
GUID_MOBJ TYPE /SAPSLL/CTSNUMC-GUID_MOBJ, "Primary Key as GUID in "RAW" Format
STCTS TYPE /SAPSLL/CTSNUMC-STCTS, "Numbering Scheme for Customs Tariff System
CCNGN TYPE /SAPSLL/CTSNUMC-CCNGN, "Number (Generic/Structured)
CRTSP TYPE /SAPSLL/PRGEN-CRTSP, "UTC Time Stamp When Object Was Added
CHTSP TYPE /SAPSLL/PRGEN-CHTSP, "UTC Time Stamp When Object Was Changed
END OF TY_CTSNUMC.
TEST --CREATING ANOTHER STUCTURE TO GET THE COMMON FIELD FOR GUID_PR
TYPES : BEGIN OF TY_PRCTSC,
GUID_PRCTSC TYPE /SAPSLL/PRCTSC-GUID_PRCTSC, "Primary Key as GUID in "RAW" Format
GUID_PR TYPE /SAPSLL/PRCTSC-GUID_PR, "Primary Key as GUID in "RAW" Format
STCTS TYPE /SAPSLL/PRCTSC-STCTS, "Numbering Scheme for Customs Tariff System
GUID_CTSNUMC TYPE /SAPSLL/PRCTSC-GUID_CTSNUMC, "Primary Key as GUID in "RAW" Format
END OF TY_PRCTSC.
TYPES : BEGIN OF TY_PRGEN,
GUID_PRGEN TYPE /SAPSLL/PRGEN-GUID_PRGEN, "Primary Key as GUID in "RAW" Format
GUID_PR TYPE /SAPSLL/PR-GUID_PR, "Primary Key as GUID in "RAW" Format
ATTR20A TYPE /SAPSLL/PRGEN-ATTR20A, "Substance ID
ATTR05A TYPE /SAPSLL/PRGEN-ATTR05A, "Materail Type
ATTR10A TYPE /SAPSLL/PRGEN-ATTR10A, "Materail Group
ATTR05B TYPE /SAPSLL/PRGEN-ATTR05B, "Sub-Family
END OF TY_PRGEN.
TYPES : BEGIN OF TY_PNTPR,
GUID_PR TYPE /SAPSLL/PR-GUID_PR,
PRVSY TYPE /SAPSLL/PNTPR-PRVSY, "R3 MATERIAL NUMBER
GRVSY TYPE /SAPSLL/PNTPR-GRVSY, "LOGICAL SYSTEM GROUP
END OF TY_PNTPR.
*TYPES : D_PSUI TYPE /SAPSLL/PRODUCT_SELECT_UI_S-QUAL_STA. "PRODUCT STATUS
*TYPES : BEGIN OF D_CORSTA,
GUID_MOBJ TYPE /SAPSLL/CORSTA-GUID_MOBJ,
QUAL_STA TYPE /SAPSLL/CORSTA-QUAL_STA,
CHTSP TYPE /SAPSLL/CORSTA-CHTSP,
END OF D_CORSTA.
>PRODUCT STAUS
*DATA : BEGIN OF T_CORSTA OCCURS 0,
GUID_MOBJ TYPE /SAPSLL/CORSTA-GUID_MOBJ,
QUAL_STA TYPE /SAPSLL/CORSTA-QUAL_STA,
END OF T_CORSTA.
TYPES : BEGIN OF TY_PR,
GUID_PR TYPE /SAPSLL/PR-GUID_PR, "Primary Key as GUID in "RAW" Format
CRTSP TYPE /SAPSLL/PR-CRTSP, "PRODUCT CREATED ON
CHTSP TYPE /SAPSLL/PR-CHTSP, "PRODUCT CHANGED ON
END OF TY_PR.
TYPES : BEGIN OF TY_PRT,
GUID_PR TYPE /SAPSLL/PRT-GUID_PR, "Primary Key as GUID in "RAW" Format
PRTXT TYPE /SAPSLL/PRT-PRTXT, "Materail description
END OF TY_PRT.
TYPES : BEGIN OF TY_FINAL,
*T_PRCTSC
GUID_PRCTSC TYPE /SAPSLL/PRCTSC-GUID_PRCTSC, "Primary Key as GUID in "RAW" Format
GUID_PR TYPE /SAPSLL/PRCTSC-GUID_PR, "Primary Key as GUID in "RAW" Format
STCTS TYPE /SAPSLL/PRCTSC-STCTS, "Numbering Scheme for Customs Tariff System
GUID_CTSNUMC TYPE /SAPSLL/PRCTSC-GUID_CTSNUMC, "Primary Key as GUID in "RAW" Format
*T_CTSNUMC
GUID_CTSNUMC TYPE /SAPSLL/CTSNUMC-GUID_CTSNUMC, "Primary Key as GUID in "RAW" Format
GUID_MOBJ TYPE /SAPSLL/CTSNUMC-GUID_MOBJ, "Primary Key as GUID in "RAW" Format
STCTS TYPE /SAPSLL/CTSNUMC-STCTS, "Numbering Scheme for Customs Tariff System
CCNGN TYPE /SAPSLL/CTSNUMC-CCNGN, "Number (Generic/Structured)
CRTSP TYPE /SAPSLL/PRGEN-CRTSP, "UTC Time Stamp When Object Was Added
CHTSP TYPE /SAPSLL/PRGEN-CHTSP, "UTC Time Stamp When Object Was Changed
*T_PRGEN
GUID_PRGEN TYPE /SAPSLL/PRGEN-GUID_PRGEN, "Primary Key as GUID in "RAW" Format
GUID_PR TYPE /SAPSLL/PR-GUID_PR, "Primary Key as GUID in "RAW" Format
ATTR20A TYPE /SAPSLL/PRGEN-ATTR20A, "Substance ID
ATTR05A TYPE /SAPSLL/PRGEN-ATTR05A, "Materail Type
ATTR10A TYPE /SAPSLL/PRGEN-ATTR10A, "Materail Group
ATTR05B TYPE /SAPSLL/PRGEN-ATTR05B, "Sub-Family
*T_PNTPR
GUID_PR TYPE /SAPSLL/PR-GUID_PR, "Primary Key as GUID in "RAW" Format
PRVSY TYPE /SAPSLL/PNTPR-PRVSY, "R3 MATERIAL NUMBER
GRVSY TYPE /SAPSLL/PNTPR-GRVSY, "LOGICAL SYSTEM GROUP
T_PR
GUID_PR TYPE /SAPSLL/PR-GUID_PR, "Primary Key as GUID in "RAW" Format
CRTSP TYPE /SAPSLL/PR-CRTSP, "PRODUCT CREATED ON
CHTSP TYPE /SAPSLL/PR-CHTSP, "PRODUCT CHANGED ON
*T_PRT
GUID_PR TYPE /SAPSLL/PRT-GUID_PR, "Primary Key as GUID in "RAW" Format
PRTXT TYPE /SAPSLL/PRT-PRTXT, "Materail description
END OF TY_FINAL.
*& INTERNAL TABLE AND WORK AREA DECLARATIONS
DATA :
T_CTSNUMC TYPE STANDARD TABLE OF TY_CTSNUMC INITIAL SIZE 0,
T_PRCTSC TYPE STANDARD TABLE OF TY_PRCTSC INITIAL SIZE 0, "TEST INCLUDED NEW STRUCTURE TO GET GUID_PR
T_PRGEN TYPE STANDARD TABLE OF TY_PRGEN INITIAL SIZE 0,
T_PNTPR TYPE STANDARD TABLE OF TY_PNTPR INITIAL SIZE 0,
T_PR TYPE STANDARD TABLE OF TY_PR INITIAL SIZE 0,
T_PRT TYPE STANDARD TABLE OF TY_PRT INITIAL SIZE 0,
T_CORSTA TYPE STANDARD TABLE OF D_CORSTA INITIAL SIZE 0,
T_FINAL TYPE STANDARD TABLE OF TY_FINAL INITIAL SIZE 0.
DATA :
WA_CTSNUMC TYPE TY_CTSNUMC,
WA_PRCTSC TYPE TY_PRCTSC, "TEST INCLUDED NEW STRUCTURE TO GET GUID_PR
WA_PRGEN TYPE TY_PRGEN,
WA_PNTPR TYPE TY_PNTPR,
WA_PR TYPE TY_PR,
WA_PRT TYPE TY_PRT,
WA_CORSTA TYPE D_CORSTA,
WA_FINAL TYPE TY_FINAL.
*& ALV DATA DECLARATIONS
DATA : lt_fieldcat TYPE slis_t_fieldcat_alv,
lw_fieldcat LIKE LINE OF lt_fieldcat,
lt_fieldcat1 TYPE slis_t_fieldcat_alv,
lw_fieldcat1 LIKE LINE OF lt_fieldcat,
lt_listheader TYPE slis_t_listheader,
lw_listheader LIKE LINE OF lt_listheader, lt_events TYPE slis_t_event,
lw_events LIKE LINE OF lt_events.
*& DATA DECLARATIONS FOR SELECTION SCREEN
DATA : G_STCTS TYPE /SAPSLL/CTSNUMC-STCTS, "NUMBER SCHEME
G_ATTR20A TYPE /SAPSLL/PRGEN-ATTR20A, "SUBSTANCE ID
G_PRVSY TYPE /SAPSLL/PNTPR-PRVSY, "R3 MATERIAL NUMBER
G_GRVSY TYPE /SAPSLL/PNTPR-GRVSY, "LOGICAL SYS GROUP
G_QSTA TYPE /SAPSLL/PRODUCT_SELECT_UI_S-QUAL_STA, "PRODUCT STATUS
G_CORSTA TYPE /SAPSLL/CORSTA-QUAL_STA, "PRODUCT STATUS
G_CRTSP TYPE /SAPSLL/PR-CRTSP, "PRODUCT CREATED ON
G_CHSTP TYPE /SAPSLL/PR-CHTSP. "PRODUCT CHANGED ON
*& SELECTION-SCREEN DECLARATIONS
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_STCTS FOR G_STCTS OBLIGATORY, "NUMBER SCHEME
S_AT20A FOR G_ATTR20A, "SUBSTANCE ID
S_PRVSY FOR G_PRVSY, "R3 MATERIAL NUMBER
S_GRVSY FOR G_GRVSY, "LOGICAL SYS GROUP
S_QSTA FOR G_QSTA, "PRODUCT STATUS
S_CORSTA FOR G_CORSTA, "PRODUCT STATUS
S_CRTSP FOR G_CRTSP, "PRODUCT CREATED ON
S_CHSTP FOR G_CHSTP. "PRODUCT CHANGED ON
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME. " TITLE. " TEXT-002.
PARAMETERS : BOTH RADIOBUTTON GROUP RG1,
EXICLASS RADIOBUTTON GROUP RG1.
SELECTION-SCREEN END OF BLOCK B2.
*& INITIALIZATION
INITIALIZATION .
CLEAR : WA_CTSNUMC,
WA_PRCTSC,
WA_PRGEN,
WA_PNTPR,
WA_PR,
WA_PRT,
WA_FINAL.
REFRESH : T_CTSNUMC,
T_PRCTSC,
T_PRGEN,
T_PNTPR,
T_PR,
T_PRT,
T_FINAL.
*& START OF SELECTION
START-OF-SELECTION.
LW_EVENTS-NAME = 'TOP_OF_PAGE' .
LW_EVENTS-FORM = 'SUB' .
APPEND LW_EVENTS TO LT_EVENTS . PERFORM LIST_HEADER.
IF BOTH EQ 'X'.
PERFORM VALIDATE_NSCHEME.
PERFORM GET_DATA.
PERFORM BUILD_FIELDCAT.
PERFORM LIST_HEADER.
PERFORM f_events CHANGING lt_events.
PERFORM DISP_ALV_DATA.
ENDIF.
*& Form VALIDATE_NSCHEME
*& VALIDATE NUMBER SCHEME
FORM VALIDATE_NSCHEME .
DATA : L_STCTS TYPE /SAPSLL/CTSNUMC-STCTS.
SELECT SINGLE STCTS FROM /SAPSLL/CTSNUMC INTO L_STCTS
WHERE STCTS IN S_STCTS .
IF SY-SUBRC <> 0.
MESSAGE 'Invalid Numbering Scheme for Customs Tariff System'
TYPE 'E'.
ENDIF .
ENDFORM. " VALIDATE_NSCHEME
*& Form GET_DATA
GET DATA INTO FINAL TABLE
FORM GET_DATA .
SELECT GUID_CTSNUMC "Primary Key as GUID in "RAW" Format
GUID_MOBJ "Primary Key of Main Object
STCTS "Numbering Scheme for Customs Tariff System
CCNGN "Number (Generic/Structured)
CRTSP "UTC Time Stamp When Object Was Added
CHTSP "UTC Time Stamp When Object Was Changed
FROM /SAPSLL/CTSNUMC
INTO TABLE T_CTSNUMC
WHERE STCTS IN S_STCTS.
*DELETE ADJACENT DUPLICATES FROM T_CTSNUMC COMPARING GUID_CTSNUMC.
IF T_CTSNUMC IS NOT INITIAL.
GET GUID_PR FOR THE CORRESPONDING GUID_CTSNUMC
SELECT GUID_PRCTSC "Primary Key as GUID in "RAW" Format
GUID_PR "Primary Key as GUID in "RAW" Format
STCTS "Numbering Scheme for Customs Tariff System
GUID_CTSNUMC "Primary Key as GUID in "RAW" Format
FROM /SAPSLL/PRCTSC
INTO TABLE T_PRCTSC
for all entries in t_ctsnumc
WHERE GUID_CTSNUMC EQ T_CTSNUMC-GUID_CTSNUMC.
IF T_PRCTSC IS NOT INITIAL.
GET FIELDS FROM PRGEN BASED ON THE GUID_PR
SELECT GUID_PRGEN "Primary Key as GUID in "RAW" Format
GUID_PR "Primary Key as GUID in "RAW" Format
ATTR20A "SUBSTANCE ID
ATTR05A "Materail Type
ATTR10A "Materail Group
ATTR05B "Sub-Family
FROM /SAPSLL/PRGEN
INTO TABLE T_PRGEN
FOR ALL ENTRIES IN T_PRCTSC
WHERE GUID_PR EQ T_PRCTSC-GUID_PR.
DELETE ADJACENT DUPLICATES FROM T_PRGEN COMPARING GUID_PR.
GET FIELDS FROM PNTPR BASED ON THE GUID_PR
SELECT GUID_PR "Primary Key as GUID in "RAW" Format
PRVSY "R3 MATERIAL NUMBER
GRVSY "LOGICAL SYSTEM GROUP
FROM /SAPSLL/PNTPR
INTO TABLE T_PNTPR
FOR ALL ENTRIES IN T_PRCTSC
WHERE GUID_PR EQ T_PRCTSC-GUID_PR.
*DELETE ADJACENT DUPLICATES FROM T_PRGEN COMPARING GUID_PR.
GET CORSTA-QUAL_STA FOR STATUS CATEGORY BESED ON THE T_CTSNUMC-GUID_MOBJ
*SELECT GUID_MOBJ
QUAL_STA
FROM /SAPSLL/CORSTA
INTO TABLE T_CORSTA
FOR ALL ENTRIES IN T_CTSNUMC
WHERE GUID_MOBJ EQ T_CTSNUMC-GUID_MOBJ.
MISSING FIELD >>>>>>>PRODUCT STATUS
GET CRSTP CHSTP FROM PR BASED ON GUID_PR
SELECT GUID_PR "Primary Key as GUID in "RAW" Format
CRTSP "PRODUCT CREATED ON
CHTSP "PRODUCT CHANGED ON
FROM /SAPSLL/PR
INTO TABLE T_PR
FOR ALL ENTRIES IN T_PRCTSC
WHERE GUID_PR EQ T_PRCTSC-GUID_PR.
*DELETE ADJACENT DUPLICATES FROM T_PR COMPARING GUID_PR.
GET PRTXT FROM PRT BASED ON GUID_PR
SELECT GUID_PR "Primary Key as GUID in "RAW" Format
PRTXT "MATERIAL DESCRIPTION
FROM /SAPSLL/PRT
INTO TABLE T_PRT
FOR ALL ENTRIES IN T_PRCTSC
WHERE GUID_PR EQ T_PRCTSC-GUID_PR.
*DELETE ADJACENT DUPLICATES FROM T_PRT COMPARING GUID_PR.
ENDIF.
ENDIF.
FILLING DATA INTO T_FINAL
REFRESH T_FINAL.
LOOP AT T_PRCTSC INTO WA_PRCTSC.
WA_FINAL-GUID_PRCTSC = WA_PRCTSC-GUID_PRCTSC.
WA_FINAL-GUID_PR = WA_PRCTSC-GUID_PR.
WA_FINAL-STCTS = WA_PRCTSC-STCTS.
WA_FINAL-GUID_CTSNUMC = WA_PRCTSC-GUID_CTSNUMC.
READ TABLE T_CTSNUMC INTO WA_CTSNUMC WITH KEY GUID_CTSNUMC = WA_PRCTSC-GUID_CTSNUMC.
IF SY-SUBRC = 0.
WA_FINAL-GUID_CTSNUMC = WA_CTSNUMC-GUID_CTSNUMC.
WA_FINAL-GUID_MOBJ = WA_CTSNUMC-GUID_MOBJ.
WA_FINAL-STCTS = WA_CTSNUMC-STCTS.
WA_FINAL-CCNGN = WA_CTSNUMC-CCNGN.
WA_FINAL-CRTSP = WA_CTSNUMC-CRTSP.
WA_FINAL-CHTSP = WA_CTSNUMC-CHTSP.
ENDIF.
READ TABLE T_PRGEN INTO WA_PRGEN WITH KEY GUID_PR = WA_PRCTSC-GUID_PR.
IF SY-SUBRC = 0.
WA_FINAL-GUID_PRGEN = WA_PRGEN-GUID_PRGEN.
WA_FINAL-GUID_PR = WA_PRGEN-GUID_PR.
WA_FINAL-ATTR20A = WA_PRGEN-ATTR20A.
WA_FINAL-ATTR05A = WA_PRGEN-ATTR05A.
WA_FINAL-ATTR10A = WA_PRGEN-ATTR10A.
WA_FINAL-ATTR05B = WA_PRGEN-ATTR05B.
ENDIF.
READ TABLE T_PNTPR INTO WA_PNTPR WITH KEY GUID_PR = WA_PRCTSC-GUID_PR.
IF SY-SUBRC = 0.
WA_FINAL-GUID_PR = WA_PNTPR-GUID_PR.
WA_FINAL-PRVSY = WA_PNTPR-PRVSY.
WA_FINAL-GRVSY = WA_PNTPR-GRVSY.
ENDIF.
READ TABLE T_PR INTO WA_PR WITH KEY GUID_PR = WA_PRCTSC-GUID_PR.
IF SY-SUBRC = 0.
WA_FINAL-GUID_PR = WA_PR-GUID_PR.
WA_FINAL-CRTSP = WA_PR-CRTSP.
WA_FINAL-CHTSP = WA_PR-CHTSP.
ENDIF.
READ TABLE T_PRT INTO WA_PRT WITH KEY GUID_PR = WA_PRCTSC-GUID_PR.
IF SY-SUBRC = 0.
WA_FINAL-GUID_PR = WA_PRT-GUID_PR.
WA_FINAL-PRTXT = WA_PRT-PRTXT.
ENDIF.
APPEND WA_FINAL TO T_FINAL.
DELETE ADJACENT DUPLICATES FROM T_FINAL COMPARING ATTR20A.
CLEAR WA_FINAL.
ENDLOOP.
ENDFORM. " GET_D
*& Form BUILD_FIELDCAT
text
--> p1 text
<-- p2 text
FORM BUILD_FIELDCAT .
REFRESH LT_FIELDCAT.
lw_fieldcat-col_pos = 1.
lw_fieldcat-tabname = 'T_FINAL'.
lw_fieldcat-fieldname = 'ATTR20A'.
lw_fieldcat-seltext_m = 'SUBSTANCE ID'.
lw_fieldcat-outputlen = '15'.
lw_fieldcat-FIX_COLUMN = 'X'.
lw_fieldcat-KEY = 'X'.
APPEND lw_fieldcat TO lt_fieldcat.
lw_fieldcat-col_pos = 2.
lw_fieldcat-tabname = 'T_FINAL'.
lw_fieldcat-fieldname = 'PRVSY'.
lw_fieldcat-seltext_m = 'R3 MAT NBR'.
lw_fieldcat-outputlen = '14'.
lw_fieldcat-FIX_COLUMN = 'X'.
APPEND lw_fieldcat TO lt_fieldcat.
lw_fieldcat-col_pos = 3.
lw_fieldcat-tabname = 'T_FINAL'.
lw_fieldcat-fieldname = 'PRTXT'.
lw_fieldcat-seltext_m = 'MAT DESCRIPTION'.
lw_fieldcat-outputlen = '19'.
APPEND lw_fieldcat TO lt_fieldcat.
lw_fieldcat-col_pos = 4.
lw_fieldcat-tabname = 'T_FINAL'.
lw_fieldcat-fieldname = 'GRVSY'.
lw_fieldcat-seltext_m = 'LOGICAL SYS GRP'.
lw_fieldcat-outputlen = '21'.
APPEND lw_fieldcat TO lt_fieldcat.
lw_fieldcat-col_pos = 5.
lw_fieldcat-tabname = 'T_FINAL'.
lw_fieldcat-fieldname = 'QUAL_STA'.
lw_fieldcat-seltext_m = 'PRODUCT STATUS'.
lw_fieldcat-outputlen = 'x'.
APPEND lw_fieldcat TO lt_fieldcat.
lw_fieldcat-col_pos = 6.
lw_fieldcat-tabname = 'T_FINAL'.
lw_fieldcat-fieldname = 'CRTSP'.
lw_fieldcat-seltext_m = 'PRODUCT CREATED ON'.
lw_fieldcat-outputlen = '21'.
APPEND lw_fieldcat TO lt_fieldcat.
lw_fieldcat-col_pos = 7.
lw_fieldcat-tabname = 'T_FINAL'.
lw_fieldcat-fieldname = 'CHTSP'.
lw_fieldcat-seltext_m = 'PRODUCT CHANGED ON'.
lw_fieldcat-outputlen = '21'.
APPEND lw_fieldcat TO lt_fieldcat.
lw_fieldcat-col_pos = 8.
lw_fieldcat-tabname = 'T_FINAL'.
lw_fieldcat-fieldname = 'ATTR05A'.
lw_fieldcat-seltext_m = 'MATERIAL TYPE'.
lw_fieldcat-outputlen = '18'.
APPEND lw_fieldcat TO lt_fieldcat.
lw_fieldcat-col_pos = 9.
lw_fieldcat-tabname = 'T_FINAL'.
lw_fieldcat-fieldname = 'ATTR10A'.
lw_fieldcat-seltext_m = 'MATERIAL GRP'.
lw_fieldcat-outputlen = '18'.
APPEND lw_fieldcat TO lt_fieldcat.
lw_fieldcat-col_pos = 10.
lw_fieldcat-tabname = 'T_FINAL'.
lw_fieldcat-fieldname = 'ATTR05B'.
lw_fieldcat-seltext_m = 'SUB-FAMILY'.
lw_fieldcat-outputlen = '18'.
APPEND lw_fieldcat TO lt_fieldcat.
lw_fieldcat-col_pos = 11.
lw_fieldcat-tabname = 'T_FINAL'.
lw_fieldcat-fieldname = 'CCNGN'.
lw_fieldcat-seltext_m = 'SUBID CLASSIFICATION'.
APPEND lw_fieldcat TO lt_fieldcat.
lw_fieldcat-col_pos = 12.
lw_fieldcat-tabname = 'T_FINAL'.
lw_fieldcat-fieldname = 'CCNGN'.
lw_fieldcat-seltext_m = 'SUBID CLASSIFICATION'.
APPEND lw_fieldcat TO lt_fieldcat.
lw_fieldcat-col_pos = 13.
lw_fieldcat-tabname = 'T_FINAL'.
lw_fieldcat-fieldname = 'CCNGN'.
lw_fieldcat-seltext_m = 'SUBID CLASSIFICATION'.
APPEND lw_fieldcat TO lt_fieldcat.
CLEAR LW_FIELDCAT.
ENDFORM. " BUILD_FIELDCAT
*& Form LIST_HEADER
text
--> p1 text
<-- p2 text
FORM LIST_HEADER .
DATA : LT_LISTHEADER TYPE slis_t_listheader,
LW_LISTHEADER LIKE LINE OF lt_listheader.
LW_LISTHEADER-TYP = 'H'.
LW_LISTHEADER-INFO = 'DISPLAY PRODUCTS BY PRODUCT CHARACTERISTIC'.
APPEND LW_LISTHEADER TO LT_LISTHEADER.
LW_LISTHEADER-TYP = 'S' .
LW_LISTHEADER-KEY = 'TIME' .
LW_LISTHEADER-INFO = SY-UZEIT .
APPEND LW_LISTHEADER TO LT_LISTHEADER.
LW_LISTHEADER-TYP = 'S' .
LW_LISTHEADER-KEY = 'DATE' .
LW_LISTHEADER-INFO = SY-DATUM .
APPEND LW_LISTHEADER TO LT_LISTHEADER.
LW_LISTHEADER-TYP = 'S' .
LW_LISTHEADER-KEY = 'CLIENT' .
LW_LISTHEADER-INFO = SY-MANDT .
APPEND LW_LISTHEADER TO LT_LISTHEADER.
ENDFORM. " LIST_HEADER
*& Form DISP_ALV_DATA
text
--> p1 text
<-- p2 text
FORM DISP_ALV_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'I_REPID'
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE1'
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'GTS Substance- Product Classification Report'.
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = LT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = LT_EVENTS
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = T_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. " DISP_ALV_DATA
FORM SUB.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = LT_LISTHEADER.
I_LOGO =*
I_END_OF_LIST_GRID =*
I_ALV_FORM =*
ENDFORM.
Any suggestions and help will be appreciated!
Regards,
KittuHi Ram,
When I had put a Break point on the FM Reuse_alv_grid_display
The parameter IT_EVENTS is not getting populated and it is not calling the FORM SUB.
But LT_EVENTS is holding the data 'TOP_OF_PAGE' and the form name as SUB.
FORM DISP_ALV_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'I_REPID'
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE1'
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'GTS Substance- Product Classification Report'.
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = LT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = LT_EVENTS
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = T_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. " DISP_ALV_DATA
FORM SUB.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = LT_LISTHEADER.
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
ENDFORM.
Any suggestions will be apprectiated.
Regards,
Kittu -
Regarding Header(top-of-page) in ALV Report
Dear All,
I am displaying name and address of company on the top of alv report and after that alv grid is displaying.
e.g.
'XYZ' LTD.
ADDRESS1,PINCODE1.
ACCOUNTING DOC.NO. DOC TYPE G/L ACCT. AMOUNT
123456 DD 6353 444400
123457 DD 6334 455500
Issue : Header is coming on all the pages I want it to come only on first page.
I am using REUSE_ALV_COMMENTARY_WRITE function for top of page.
Pls , suggest any suitable suggestion.
Thanks & regards,
Sandip SonarHi,
check the below code
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = i_repid
it_fieldcat = header
is_layout = gt_layout
i_callback_top_of_page = 'TOP-OF-PAGE1'
i_grid_title = xyz
it_sort = gt_sort[]
i_default = 'X'
i_save = 'U'
is_variant = gt_variant
it_events = gt_events
tables
t_outtab = t_output.
form top-of-page1.
data: header type slis_t_listheader,
wa type slis_listheader,
flag(1).
if flag is initial.
TITLE AREA
wa-typ = 'S'.
wa-info = text-h04.
append wa to header.
wa-typ = 'S'.
write sy-datum to wa-info mm/dd/yyyy.
concatenate text-h03 wa-info into wa-info separated by space.
append wa to header.
wa-typ = 'S'.
concatenate text-h02 sy-uname into wa-info separated by space.
append wa to header.
wa-typ = 'S'.
concatenate text-h01 sy-repid into wa-info separated by space.
append wa to header.
********" LOGO
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = header
i_logo = 'ENJOYSAP_LOGO'.
*********" LOGO
flag = 'x'.
endif.
endform.
Edited by: sateesh kumar on Nov 30, 2009 10:47 AM -
HOW TO USE OWN LOGO IN 'REUSE_ALV_COMMENTARY_WRITE'
HELLO THERE ,
CAN ANYBODY TELL ME HOW TO USE OWN LOGO IN 'REUSE_ALV_COMMENTARY_WRITE' ?
I HAVE TRIED THROUGH THE TRANSCATION 'OAOR' AND 'OAER' , BUT I'M UNABLE TO DO IT. SO CAN ANYBODY PLZ TELL ME ANY OTHER WAY?
REGARDS.Hello NEON BLUE,
First step first upload u r log in the sap system using the below steps.
1. Goto the transaction OAER
2. Enter the class name as 'PICTURES'
3. Enter the class type as 'OT'
4. Enter the object key as the name of the logo you wish to give
5. Execute
6. Then in the new screen select Standard doc. types in bottom window
Click on the Screen icon
Now, it will ask for the file path where you have to upload the logo
7. Now you can use this logo in REUSE_ALV_COMMENTARY_WRITE
call the FM
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = Y_I_LISTHEADER[]
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM = -
Hi all,
i am having one issue regarding ALV GRID.
my issue is after executin report O/P in grid format is ok,
but the same format i want to display when u click print preview or when u execute it in back ground,
it is displaying as same as ALV LIST,hi use the coding like this,
here i am calling hirarchial from list check this....
*& Report ZZZ00
REPORT ZPR_02.
TYPE-POOLS: SLIS.
TABLES:pa0002,pa0008.
data:begin of it_pa0002 occurs 0,
checkbox,
pernr like pa0002-pernr,
begda like pa0002-begda,
endda like pa0002-endda,
vorna like pa0002-vorna,
nachn like pa0002-nachn,
end of it_pa0002.
data:begin of it_pa00021 occurs 0,
pernr like pa0002-pernr,
begda like pa0002-begda,
endda like pa0002-endda,
vorna like pa0002-vorna,
nachn like pa0002-nachn,
expand TYPE xfeld value 'X',
end of it_pa00021.
data:begin of it_pa0008 occurs 0,
pernr like pa0008-pernr,
begda like pa0008-begda,
endda like pa0008-endda,
ANSAL like pa0008-ANSAL,
LGA01 like pa0008-LGA01,
BET01 LIKE PA0008-BET01,
end of it_pa0008.
DATA: IT_FIELD_CAT TYPE SLIS_T_FIELDCAT_ALV,
IT_FIELD_CAT1 TYPE SLIS_T_FIELDCAT_ALV,
IT_LAYOUT1 TYPE SLIS_LAYOUT_ALV,
WA_FIELD_CAT TYPE SLIS_FIELDCAT_ALV,
WA_FIELD_CAT1 TYPE SLIS_FIELDCAT_ALV,
IT_LAYOUT TYPE SLIS_LAYOUT_ALV,
IT_EVENTS TYPE SLIS_T_EVENT,
WA_EVENTS TYPE SLIS_ALV_EVENT,
IT_HEADER TYPE SLIS_T_LISTHEADER,
WA_HEADER TYPE SLIS_LISTHEADER,
wa_keyinfo TYPE slis_keyinfo_alv.
CONSTANTS:c VALUE 'X'.
SELECT-OPTIONS: S_pernr FOR pa0002-pernr.
START-OF-SELECTION.
SET PF-STATUS 'DATA' .
PERFORM GET_DATA.
PERFORM BUILD_FIELD_CAT.
PERFORM GET_EVENTS.
PERFORM DISPLAY_DATA.
*& Form get_data
text
FORM GET_DATA .
SELECT pernr
begda
endda
vorna
nachn
FROM pa0002
INTO CORRESPONDING FIELDS OF TABLE IT_pa0002
WHERE pernr IN S_pernr.
ENDFORM. " get_data
*& Form build_field_cat
text
FORM BUILD_FIELD_CAT .
wa_field_cat-tabname = 'PA0002'.
WA_FIELD_CAT-FIELDNAME = 'CHECKBOX'.
wa_field_cat-ref_tabname = 'IT_PA0002'.
WA_FIELD_CAT-REPTEXT_DDIC = 'Check Box'.
APPEND WA_FIELD_CAT TO IT_FIELD_CAT.
CLEAR WA_FIELD_CAT.
wa_field_cat-tabname = 'PA0002'.
WA_FIELD_CAT-FIELDNAME = 'PERNR'.
wa_field_cat-ref_tabname = 'IT_PA0002'.
WA_FIELD_CAT-REPTEXT_DDIC = 'Personnel no'.
APPEND WA_FIELD_CAT TO IT_FIELD_CAT.
CLEAR WA_FIELD_CAT.
wa_field_cat-tabname = 'PA0002'.
WA_FIELD_CAT-FIELDNAME = 'BEGDA'.
wa_field_cat-ref_tabname = 'IT_PA0002'.
WA_FIELD_CAT-REPTEXT_DDIC = 'Start date'.
APPEND WA_FIELD_CAT TO IT_FIELD_CAT.
CLEAR WA_FIELD_CAT.
wa_field_cat-tabname = 'PA0002'.
WA_FIELD_CAT-FIELDNAME = 'ENDDA'.
wa_field_cat-ref_tabname = 'IT_PA0002'.
WA_FIELD_CAT-REPTEXT_DDIC = 'End date'.
APPEND WA_FIELD_CAT TO IT_FIELD_CAT.
CLEAR WA_FIELD_CAT.
wa_field_cat-tabname = 'PA0002'.
WA_FIELD_CAT-FIELDNAME = 'VORNA'.
wa_field_cat-ref_tabname = 'IT_PA0002'.
WA_FIELD_CAT-REPTEXT_DDIC = 'First name'.
APPEND WA_FIELD_CAT TO IT_FIELD_CAT.
CLEAR WA_FIELD_CAT.
wa_field_cat-tabname = 'PA0002'.
WA_FIELD_CAT-FIELDNAME = 'NACHN'.
wa_field_cat-ref_tabname = 'IT_PA0002'.
WA_FIELD_CAT-REPTEXT_DDIC = 'Last name'.
APPEND WA_FIELD_CAT TO IT_FIELD_CAT.
CLEAR WA_FIELD_CAT.
wa_field_cat1-tabname = 'PA0002'.
WA_FIELD_CAT1-FIELDNAME = 'PERNR'.
wa_field_cat1-ref_tabname = 'IT_PA00021'.
WA_FIELD_CAT1-REPTEXT_DDIC = 'Personnel no'.
APPEND WA_FIELD_CAT1 TO IT_FIELD_CAT1.
CLEAR WA_FIELD_CAT1.
wa_field_cat1-tabname = 'PA0002'.
WA_FIELD_CAT1-FIELDNAME = 'BEGDA'.
wa_field_cat1-ref_tabname = 'IT_PA00021'.
WA_FIELD_CAT1-REPTEXT_DDIC = 'Start date'.
APPEND WA_FIELD_CAT1 TO IT_FIELD_CAT1.
CLEAR WA_FIELD_CAT1.
wa_field_cat1-tabname = 'PA0002'.
WA_FIELD_CAT1-FIELDNAME = 'ENDDA'.
wa_field_cat1-ref_tabname = 'IT_PA00021'.
WA_FIELD_CAT1-REPTEXT_DDIC = 'End date'.
APPEND WA_FIELD_CAT1 TO IT_FIELD_CAT1.
CLEAR WA_FIELD_CAT1.
wa_field_cat1-tabname = 'PA0002'.
WA_FIELD_CAT1-FIELDNAME = 'VORNA'.
wa_field_cat1-ref_tabname = 'IT_PA00021'.
WA_FIELD_CAT1-REPTEXT_DDIC = 'First name'.
APPEND WA_FIELD_CAT1 TO IT_FIELD_CAT1.
CLEAR WA_FIELD_CAT.
wa_field_cat1-tabname = 'PA0002'.
WA_FIELD_CAT1-FIELDNAME = 'NACHN'.
wa_field_cat1-ref_tabname = 'IT_PA00021'.
WA_FIELD_CAT1-REPTEXT_DDIC = 'Last name'.
APPEND WA_FIELD_CAT1 TO IT_FIELD_CAT1.
CLEAR WA_FIELD_CAT1.
wa_field_cat1-tabname = 'PA0008'.
wa_field_cat1-fieldname = 'PERNR'.
wa_field_cat-ref_tabname = 'IT_PA0008'.
wa_field_cat1-REPTEXT_DDIC = 'personnelno'.
APPEND wa_field_cat1 TO it_field_cat1.
CLEAR WA_FIELD_CAT1.
wa_field_cat1-tabname = 'PA0008'.
wa_field_cat1-fieldname = 'BEGDA'.
wa_field_cat-ref_tabname = 'IT_PA0008'.
wa_field_cat1-REPTEXT_DDIC = 'begindate'.
APPEND wa_field_cat1 TO it_field_cat1.
CLEAR WA_FIELD_CAT1.
wa_field_cat1-tabname = 'PA0008'.
wa_field_cat1-fieldname = 'ENDDA'.
wa_field_cat-ref_tabname = 'IT_PA0008'.
wa_field_cat1-REPTEXT_DDIC = 'enddate'.
APPEND wa_field_cat1 TO it_field_cat1.
CLEAR WA_FIELD_CAT1.
wa_field_cat1-tabname = 'PA0008'.
wa_field_cat1-fieldname = 'ANSAL'.
wa_field_cat-ref_tabname = 'IT_PA0008'.
wa_field_cat1-REPTEXT_DDIC = 'annualsalary'.
APPEND wa_field_cat1 TO it_field_cat1.
CLEAR WA_FIELD_CAT1.
wa_field_cat1-tabname = 'PA0008'.
wa_field_cat1-fieldname = 'LGA01'.
wa_field_cat-ref_tabname = 'IT_PA0008'.
wa_field_cat1-REPTEXT_DDIC = 'wagetype'.
APPEND wa_field_cat1 TO it_field_cat1.
CLEAR WA_FIELD_CAT1.
wa_field_cat1-tabname = 'PA0008'.
wa_field_cat1-fieldname = 'BET01'.
wa_field_cat-ref_tabname = 'IT_PA0008'.
wa_field_cat1-REPTEXT_DDIC = 'Amount'.
APPEND wa_field_cat1 TO it_field_cat1.
CLEAR WA_FIELD_CAT1.
ENDFORM. " build_field_cat
*& Form display_data
text
FORM DISPLAY_DATA .
it_layout-box_fieldname = 'CHECKBOX'.
it_layout-EDIT = 'X'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = IT_FIELD_CAT
IS_LAYOUT = IT_LAYOUT
IT_EVENTS = IT_EVENTS
TABLES
T_OUTTAB = IT_pa0002.
ENDFORM. " display_data
*& Form get_events
text
FORM GET_EVENTS .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
ET_EVENTS = IT_EVENTS .
READ TABLE IT_EVENTS INTO WA_EVENTS
WITH KEY NAME = SLIS_EV_TOP_OF_PAGE.
IF SY-SUBRC = 0.
WA_EVENTS-FORM = 'TOP_OF_PAGE'.
MODIFY IT_EVENTS FROM WA_EVENTS INDEX SY-TABIX.
ENDIF.
ENDFORM. " get_events
*& Form top_of_page
text
FORM TOP_OF_PAGE.
WA_HEADER-TYP = 'H'.
WA_HEADER-INFO = 'EMPLOYEE DATA'.
APPEND WA_HEADER TO IT_HEADER.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_HEADER
ENDFORM. "top_of_page
*& Form GUI_SET
FORM GUI_SET USING RT_EXTAB TYPE SLIS_T_EXTAB .
SET PF-STATUS 'DATA' .
ENDFORM. "GUI_SET
*& Form USER_COMMAND
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
R_SELFIELD TYPE SLIS_SELFIELD.
DATA:V_PERNR LIKE PA0002-PERNR.
CASE R_UCOMM.
WHEN 'DET'.
DATA: V_FLAG.
clear : v_flag.
LOOP AT IT_PA0002.
if it_PA0002-checkbox = 'X'.
v_flag = 'X'.
v_pernr = IT_PA0002-PERNR.
SELECT PERNR
BEGDA
ENDDA
VORNA
NACHN
FROM PA0002
INTO CORRESPONDING FIELDS OF TABLE IT_PA00021
WHERE PERNR = V_PERNR.
SORT IT_PA00021 BY PERNR.
DELETE ADJACENT DUPLICATES FROM IT_PA00021 COMPARING PERNR.
READ TABLE IT_PA00021 INDEX 1.
SELECT PERNR
BEGDA
ENDDA
ANSAL
LGA01
BET01
FROM PA0008
INTO TABLE IT_PA0008
FOR ALL ENTRIES IN IT_PA00021
WHERE PERNR = IT_PA00021-PERNR.
if not it_PA0008[] Is initial.
SORT IT_PA0008 BY PERNR.
delete adjacent duplicates from it_PA0008 comparing pernr.
READ TABLE IT_PA0008 INDEX 1.
endif.
endif.
enddo.
it_layout1-group_change_edit = c.
it_layout1-colwidth_optimize = c.
it_layout1-zebra = c.
it_layout1-detail_popup = c.
it_layout1-get_selinfos = c.
it_layout-expand_fieldname = 'EXPAND'.
wa_keyinfo-header01 = 'PERNR'.
wa_keyinfo-item01 = 'PERNR'.
IF NOT V_FLAG IS INITIAL.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = IT_LAYOUT1
IT_FIELDCAT = IT_FIELD_CAT1
I_TABNAME_HEADER = 'PA0002'
I_TABNAME_ITEM = 'PA0008'
IS_KEYINFO = wa_keyinfo
TABLES
T_OUTTAB_HEADER = IT_PA00021
T_OUTTAB_ITEM = IT_PA0008.
ENDIF.
CLEAR: IT_PA00021,IT_PA0002,IT_PA0008.
ENDLOOP.
WHEN 'BACK'.
EXIT.
ENDCASE.
ENDFORM. "USER_COMMAND
reward points if useful,
venkat. -
Regarding totals and sub totals text in alv
Hi all,
i am displaying Totals and subtotals ......but i want to display the text before the the Totals and Subtotals.
Please help me in regarding this..
Thanks in advance,
S.Gangi reddy.hi,
check this report.
*& Report ZGM_ALV_SUBTOTAL_TEXT *
*& Author :
*& Date :
*& Description :
*& Modification History
REPORT ZGM_ALV_SUBTOTAL_TEXT .
*& Table declaration
TABLES: ekko.
*& Type pool declaration
TYPE-POOLS: slis. " Type pool for ALV
*& Selection screen
SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.
*& Type declaration
Type declaration for internal table to store EKPO data
TYPES: BEGIN OF x_data,
ebeln TYPE char30, " Document no.
ebelp TYPE ebelp, " Item no
matnr TYPE matnr, " Material no
matnr1 TYPE matnr, " Material no
werks TYPE werks_d, " Plant
werks1 TYPE werks_d, " Plant
ntgew TYPE entge, " Net weight
gewe TYPE egewe, " Unit of weight
END OF x_data.
*& Internal table declaration
DATA:
i_ekpo TYPE STANDARD TABLE OF x_data INITIAL SIZE 0,
Internal table for storing field catalog information
i_fieldcat TYPE slis_t_fieldcat_alv,
Internal table for Top of Page info. in ALV Display
i_alv_top_of_page TYPE slis_t_listheader,
Internal table for ALV Display events
i_events TYPE slis_t_event,
Internal table for storing ALV sort information
i_sort TYPE slis_t_sortinfo_alv,
i_event TYPE slis_t_event.
*& Work area declaration
DATA:
wa_ekko TYPE x_data,
wa_layout TYPE slis_layout_alv,
wa_events TYPE slis_alv_event,
wa_sort TYPE slis_sortinfo_alv.
*& Constant declaration
CONSTANTS:
c_header TYPE char1
VALUE 'H', "Header in ALV
c_item TYPE char1
VALUE 'S'.
*& Start-of-selection event
START-OF-SELECTION.
Select data from ekpo
SELECT ebeln " Doc no
ebelp " Item
matnr " Material
matnr " Material
werks " Plant
werks " Plant
ntgew " Quantity
gewei " Unit
FROM ekpo
INTO TABLE i_ekpo
WHERE ebeln IN s_ebeln
AND ntgew NE '0.00'. IF sy-subrc = 0.
SORT i_ekpo BY ebeln ebelp matnr .
ENDIF.
To build the Page header
PERFORM sub_build_header. "* To prepare field catalog
PERFORM sub_field_catalog. "* Perform to populate the layout structure
PERFORM sub_populate_layout."* Perform to populate the sort table.
PERFORM sub_populate_sort."* Perform to populate ALV event
PERFORM sub_get_event.
END-OF-SELECTION.
* Perform to display ALV report
PERFORM sub_alv_report_display.
*& Form sub_build_header
To build the header
No Parameter
FORM sub_build_header .
Local data declaration
DATA: l_system TYPE char10 , "System id
l_r_line TYPE slis_listheader, "Hold list header
l_date TYPE char10, "Date
l_time TYPE char10, "Time
l_success_records TYPE i, "No of success records
l_title(300) TYPE c. " Title
Title Display
l_r_line-typ = c_header. " header
l_title = 'Test report'(001).
l_r_line-info = l_title.
APPEND l_r_line TO i_alv_top_of_page.
CLEAR l_r_line.
* Run date Display
CLEAR l_date.
l_r_line-typ = c_item. " Item
WRITE: sy-datum TO l_date MM/DD/YYYY.
l_r_line-key = 'Run Date :'(002).
l_r_line-info = l_date.
APPEND l_r_line TO i_alv_top_of_page.
CLEAR: l_r_line,
l_date.ENDFORM. " sub_build_header
*& Form sub_field_catalog
Build Field Catalog
No Parameter
FORM sub_field_catalog .
Build Field Catalog
PERFORM sub_fill_alv_field_catalog USING: '01' '01' 'EBELN'
'I_EKPO' 'L'
'Doc No'(003) ' ' ' ' ' ' ' ', '01' '02' 'EBELP' 'I_EKPO' 'L'
'Item No'(004) 'X' 'X' ' ' ' ', '01' '03' 'MATNR' 'I_EKPO' 'L'
'Material No'(005) 'X' 'X' ' ' ' ', '01' '03' 'MATNR1' 'I_EKPO'
'L'
'Material No'(005) ' ' ' ' ' ' ' ',
'01' '04' 'WERKS' 'I_EKPO' 'L'
'Plant'(006) 'X' 'X' ' ' ' ', '01' '04' 'WERKS1' 'I_EKPO' 'L'
'Plant'(006) ' ' ' ' ' ' ' ', '01' '05' 'NTGEW' 'I_EKPO' 'R'
'Net Weight'(007) ' ' ' ' 'GEWE' 'I_EKPO'.ENDFORM.
" sub_field_catalog*&----
*& Form sub_fill_alv_field_catalog
*& For building Field Catalog
*& p_rowpos Row position
*& p_colpos Col position
*& p_fldnam Fldname
*& p_tabnam Tabname
*& p_justif Justification
*& p_seltext Seltext
*& p_out no out
*& p_tech Technical field
*& p_qfield Quantity field
*& p_qtab Quantity table
FORM sub_fill_alv_field_catalog USING p_rowpos TYPE sycurow
p_colpos TYPE sycucol
p_fldnam TYPE fieldname
p_tabnam TYPE tabname
p_justif TYPE char1
p_seltext TYPE dd03p-scrtext_l
p_out TYPE char1
p_tech TYPE char1
p_qfield TYPE slis_fieldname
p_qtab TYPE slis_tabname.
Local declaration for field
catalog
DATA: wa_lfl_fcat TYPE slis_fieldcat_alv.
wa_lfl_fcat-row_pos = p_rowpos. "Row
wa_lfl_fcat-col_pos = p_colpos. "Column
wa_lfl_fcat-fieldname = p_fldnam. "Field Name
wa_lfl_fcat-tabname = p_tabnam. "Internal Table Name
wa_lfl_fcat-just = p_justif. "Screen Justified
wa_lfl_fcat-seltext_l = p_seltext. "Field Text
wa_lfl_fcat-no_out = p_out. "No output
wa_lfl_fcat-tech = p_tech. "Technical field
wa_lfl_fcat-qfieldname = p_qfield. "Quantity unit
wa_lfl_fcat-qtabname = p_qtab .
"Quantity table
IF p_fldnam = 'NTGEW'.
wa_lfl_fcat-do_sum = 'X'.
ENDIF.
APPEND wa_lfl_fcat TO i_fieldcat.
CLEAR wa_lfl_fcat.
ENDFORM.
" sub_fill_alv_field_catalog*&----
*& Form sub_populate_layout
Populate ALV layout
No Parameter
FORM sub_populate_layout . CLEAR wa_layout.
wa_layout-colwidth_optimize = 'X'.
" Optimization of Col width
ENDFORM. " sub_populate_layout*&----
*& Form sub_populate_sort
Populate ALV sort table
No Parameter
FORM sub_populate_sort .
Sort on material
wa_sort-spos = '01' .
wa_sort-fieldname = 'MATNR'.
wa_sort-tabname = 'I_EKPO'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO i_sort .
CLEAR wa_sort.
Sort on plant
wa_sort-spos = '02'.
wa_sort-fieldname = 'WERKS'.
wa_sort-tabname = 'I_EKPO'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO i_sort .
CLEAR wa_sort.
ENDFORM.
" sub_populate_sort*&----
*& Form sub_get_event
Get ALV grid event and pass the form name to subtotal_text
event
No Parameter
FORM sub_get_event .
CONSTANTS : c_formname_subtotal_text TYPE slis_formname VALUE
'SUBTOTAL_TEXT'. DATA: l_s_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 4
IMPORTING
et_events = i_event
EXCEPTIONS
list_type_wrong = 0
OTHERS = 0.
Subtotal
READ TABLE i_event INTO l_s_event
WITH KEY name = slis_ev_subtotal_text.
IF sy-subrc = 0.
MOVE c_formname_subtotal_text TO l_s_event-form.
MODIFY i_event FROM l_s_event INDEX sy-tabix.
ENDIF.ENDFORM.
" sub_get_event*&----
*& Form sub_alv_report_display
For ALV Report Display
No Parameter
FORM sub_alv_report_display .
DATA: l_repid TYPE syrepid .
l_repid = sy-repid .
This function module for displaying the ALV
report
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = l_repid
i_callback_top_of_page = 'SUB_ALV_TOP_OF_PAGE'
is_layout = wa_layout
it_fieldcat = i_fieldcat
it_sort = i_sort
it_events = i_event
i_default = 'X'
i_save = 'A'
TABLES
t_outtab = i_ekpo
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE i000 WITH 'Error in ALV report display'(055).
ENDIF.
ENDFORM.
" sub_alv_report_display*&----
FORM sub_alv_top_of_page
Call ALV top of page
No parameter
FORM sub_alv_top_of_page. "#EC CALLED*
*To write header for the ALV
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_alv_top_of_page.
ENDFORM.
"alv_top_of_page*&----
*& Form subtotal_text
Build subtotal text
P_total Total
p_subtot_text Subtotal text info
FORM subtotal_text CHANGING
p_total TYPE any
p_subtot_text TYPE slis_subtot_text.
Material level sub total
IF p_subtot_text-criteria = 'MATNR'.
p_subtot_text-display_text_for_subtotal
= 'Material level total'(009).
ENDIF.
Plant level sub total
IF p_subtot_text-criteria = 'WERKS'.
p_subtot_text-display_text_for_subtotal = 'Plant level total'(010).
ENDIF.
ENDFORM. "subtotal_textSelection screen:
\[removed by moderator\]
Edited by: Jan Stallkamp on Sep 3, 2008 6:17 PM
Maybe you are looking for
-
'ServerProperty' with 'Name' = 'Language' does not exist in the collection
LS, One of my customers (using ssas 2012) is facing collation issues which result in missing facts in the cubes. I suggested them to have a look at the Analysis Server Properties. Howevere, on selection of the Analysis Services Properties page 'Lang
-
I am EXTREMELY disappointed in Apple. I preordered my iPhone 5 as soon as it was available, but did not receive it in the mail until yesterday. I excitedly met the UPS man and ran inside to open my new phone. Upon opening the package, I found that my
-
My older mac book pro and iMac are both running 10.6.8 and both have started running safari and email VERY slowly. My new mac book pro running 10.9 is having no issues. Is anyone else experiencing these issues?
-
hi there my problem is quite simple ... i dont have a free reporting tool available to make ma reports i have got one named "Report Cat" but it is an evaluation version ... the problem with it is that on every page of report it additional prints "Eva
-
Hi Does anybody know if it is possible to populate a report's distribution list, from a table, at run time? If it is possible, how do you do it? Regards Kelv