ALV report code
Dear all,
I get results in rows & columnwise in ALV report. Suppose I select any field & double click , I want to call any function further.
Pl' tell the example how to give this event action in code ??
Pl ' give sample examples.....
Thanks..
hi
take help' of this code
*& Report ZTESTDEMO_INTERACTIVE_LIST_2
REPORT ZTESTDEMO_INTERACTIVE_LIST_2.
TABLES: MARA,MARC,MARD.
* internal table itab_mara 3 fields matnr, ernam,mtart
DATA: BEGIN OF ITAB_MARA OCCURS 0,
MATNR LIKE MARA-MATNR, " material number
ERNAM LIKE MARA-ERNAM, " name of person who create
MTART LIKE MARA-MTART, " Material Type
END OF ITAB_MARA.
* internal table itab_marc 3 fields matnr, werks,lvorm
DATA: BEGIN OF ITAB_MARC OCCURS 0,
MATNR LIKE MARC-MATNR,
WERKS LIKE MARC-WERKS, " Plant
LVORM LIKE MARC-LVORM, " Flag Material for Deletion at Plant Level
END OF ITAB_MARC.
* internal table itab_mard 2 fields
DATA: BEGIN OF ITAB_MARD OCCURS 0,
MATNR LIKE MARD-MATNR,
LGORT LIKE MARD-LGORT, " Storage Location
END OF ITAB_MARD.
SELECT-OPTIONS: S_MTART FOR MARA-MTART.
INITIALIZATION.
S_MTART-LOW = 'HALB'.
S_MTART-HIGH = 'HAWA'.
S_MTART-OPTION = 'BT'.
APPEND S_MTART.
START-OF-SELECTION.
SELECT MATNR ERNAM MTART FROM MARA INTO TABLE ITAB_MARA WHERE MTART IN
S_MTART.
PERFORM DISPLAY.
TOP-OF-PAGE.
WRITE:/2(15) 'MATERIAL NO',20(20) 'CREATED BY',45(15) 'MATERIAL TYPE'.
FORM DISPLAY.
LOOP AT ITAB_MARA.
WRITE:/ ITAB_MARA-MATNR UNDER 'MATERIAL NO' HOTSPOT ON,ITAB_MARA-ERNAM
UNDER 'CREATED BY',ITAB_MARA-MTART UNDER 'MATERIAL TYPE'.
HIDE: ITAB_MARA-MATNR.
ENDLOOP.
ENDFORM.
AT LINE-SELECTION.
CASE SY-LSIND.
WHEN 1.
SELECT MATNR WERKS LVORM FROM MARC INTO TABLE ITAB_MARC WHERE MATNR =
ITAB_MARA-MATNR.
PERFORM DISPLAY1.
WHEN 2.
SELECT MATNR LGORT FROM MARD INTO TABLE ITAB_MARD WHERE MATNR =
ITAB_MARC-MATNR.
PERFORM DISPLAY2.
when 3.
sy-lsind = 0.
ENDCASE.
FORM DISPLAY1.
LOOP AT ITAB_MARC.
WRITE:/ ITAB_MARC-MATNR HOTSPOT ON, ITAB_MARC-WERKS,ITAB_MARC-LVORM.
HIDE: ITAB_MARC-MATNR.
ENDLOOP.
WRITE:/ SY-LSIND.
ENDFORM.
FORM DISPLAY2.
LOOP AT ITAB_MARD.
WRITE:/ ITAB_MARD-MATNR, ITAB_MARD-LGORT.
ENDLOOP.
WRITE:/ SY-LSIND.
ENDFORM.
regards
ravish
<b>plz reward points if helpful</b>
Similar Messages
-
Hello gurus,
I am trying to write a simple ALV report code. I pasted the code below.
The program is getting dumped. I am unable to find where the error is.
Please help me out.
Thanks in advance.
Regards,
Balu
REPORT YBP_ALV1 .
TABLES : MARA.
DATA : BEGIN OF itab OCCURS 500,
matnr LIKE mara-matnr,
ersda LIKE mara-ersda,
ernam LIKE mara-ernam,
END OF itab.
DATA i_repid LIKE sy-repid.
DATA i_lines LIKE sy-tabix.
TYPE-POOLS : slis.
DATA int_fcat TYPE SLIS_T_FIELDCAT_ALV.
SELECT-OPTIONS : s_matnr for mara-matnr matchcode object mat1.
START-OF-SELECTION.
select * FROM mara into CORRESPONDING FIELDS OF itab WHERE matnr in s_matnr.
ENDSELECT.
end-of-SELECTION.
i_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = i_repid
I_INTERNAL_TABNAME = 'ITAB'
I_INCLNAME = i_repid
CHANGING
CT_FIELDCAT = int_fcat
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
WRITE: / 'RETURNCODE', sy-subrc, 'from function reuse_alv_fieldcatalog_merge'.
ENDIF.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = i_repid
IT_FIELDCAT = int_fcat
I_SAVE = 'A'
TABLES
T_OUTTAB = itab
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
WRITE :/ 'Returncode', sy-subrc, 'from function reuse_alv_list_display'.
ENDIF.
Edited by: Balu on Jan 3, 2008 12:27 PMRich,
my code after the suggested changes -
REPORT YBP_ALV1 .
TABLES : MARA.
DATA : BEGIN OF xtab,
matnr LIKE mara-matnr,
ersda LIKE mara-ersda,
ernam LIKE mara-ernam,
END OF xtab,
itab LIKE STANDARD TABLE OF xtab WITH HEADER LINE.
DATA i_repid LIKE sy-repid.
DATA i_lines LIKE sy-tabix.
TYPE-POOLS : slis.
DATA int_fcat TYPE SLIS_T_FIELDCAT_ALV.
SELECT-OPTIONS : s_matnr for mara-matnr matchcode object mat1.
START-OF-SELECTION.
select * FROM mara into CORRESPONDING FIELDS OF itab WHERE
matnr in s_matnr.
ENDSELECT.
describe TABLE itab LINES i_lines.
*if i_lines lt 1.
write: / 'no material found'.
exit.
*endif.
*clear i_lines.
end-of-SELECTION.
i_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = i_repid
I_INTERNAL_TABNAME = 'XTAB'
I_INCLNAME = i_repid
CHANGING
CT_FIELDCAT = int_fcat
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
WRITE: / 'RETURNCODE', sy-subrc, 'from function reuse_alv_fieldcatalog_merge'.
ENDIF.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = i_repid
IT_FIELDCAT = int_fcat
I_SAVE = 'A'
TABLES
T_OUTTAB = itab
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
WRITE : / 'Returncode', sy-subrc, 'from function reuse_alv_list_display'.
ENDIF.
The dump analysis is as below. Sorry I pasted the wrong analysis before -
An exception occurred. This exception is dealt with in more detail below
. The exception, which is assigned to the class 'CX_SY_READ_SRC_LINE_TOO_LONG',
was neither
caught nor passed along using a RAISING clause, in the procedure
"K_KKB_FIELDCAT_MERGE" "(FUNCTION)"
Since the caller of the procedure could not have expected this exception
to occur, the running program was terminated.
The reason for the exception is:
You tried to read the program "YBP_ALV1" from the database. The READ REPORT
statement allows you to copy a program's source code into an internal
table. The lines of source code must not be longer than the width of the
internal table. The internal table is 72 characters wide. The source
code line is 80 wide.
Regards,
Balu -
Code for Hot spot in ALV report to call transaction
Hi,
I hv never use hot spot to link as a call transaction can u give the link or code how to make hot spot on a particular fields i am working on a ALV report in that report in the belnr coloumn when user click on belnr i want to call FB03 transaction ref. to that belnr number and fisacl year.
regards,
zafarHi,
In the fieldcatalog you will have to write the hotspot as shown below,
wa_fieldcat-hotspot = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_user_command = 'USER_COMMAND'"----> this is important
i_callback_pf_status_set = 'PFSTATUS'
it_fieldcat = it_fieldcat
is_layout = it_layout
it_event_exit = it_eventexit
i_screen_start_column = 10
i_screen_start_line = 20
i_screen_end_column = 70
i_screen_end_line = 45
i_grid_title = 'Customer-Order Details'
TABLES
t_outtab = it_data.
then you will have to catch the user command as follows,
FORM user_command USING r_ucomm TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA: alv_vbeln TYPE vbeln,
mess_text(30) TYPE c,
txt_vbeln(10) TYPE c.
*User clicks a Order No. in ALV it passed to the following transaction.
CASE r_ucomm.
WHEN '&IC1'.
READ TABLE it_data INDEX rs_selfield-tabindex INTO wa_data.
alv_vbeln = wa_data-vbeln..
IF sy-subrc = 0.
CLEAR: mess_text, txt_vbeln.
SUBMIT zprogram
WITH pr_vbeln = alv_vbeln AND RETURN.
put your call transaction logic here
ENDIF.
ENDCASE.
ENDFORM. "user_command
Hope it helps you,
Regards,
Abhijit G. Borkar -
Hello,
Is it possible to print Barcode(for Work order) in ALV report...Hi Perumal
In ALV there wont be any need for bar code, bcoz barcodes are only printing purpose.
barcode can be displayed using sapscript in reports.
regards
kishore -
Is there any transaction code for uploding logo in ALV reports.
is there any transaction code for uploding logo in ALV reports.
hi,
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_header.
i_logo = 'Z_LOGO'.
endform.
Upload Logo for REUSE_ALV_COMMENTARY_WRITE
For those who wish to upload and use a picture in your ALV abap reports.
Steps for uploading Logo :-:
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
or
Import Logo and Background Picture for Reporting
In this step, you can import a customer-specific logo and a background picture into the R/3 System. These will be displayed in the header area of reports in HR Funds and Position Management.
From the SPRO:
HR Funds and Position Management --> Dialog Control --> Customize Reporting Interface --> Import Logo and Background Picture for Reporting.
Activities
1. Enter the Name of your logo/background picture as an object key in the initial screen.
2. Make sure that the class name is PICTURES, and the class type is OT.
3. Choose Execute.
4. Double-click the document type Picture on the Create tab page. A dialog box will appear in which you can enter the path in which the logo/background picture can be found.
5. Enter the path and choose Open. The logo will be uploaded into the current R/3 System. If the logo/background picture is to be transported into other systems as well, choose Transport.
6. Return to the initial screen and repeat the procedure after having entered the Name of your background picture as an object key.
Please note that the logo/background picture can only be displayed in ALV-based reports with an HTML header. Manually programmed reports such as business distribution plans are not based on the ALV.
If you have selected several initial objects, ALV-based reports in HR Funds and Position Management will automatically use a hiearchical-sequential display. A logo is not displayed here either. Note also that the logo cannot be printed (see print preview in program).
Make sure that the logo does not exceed a height of 100 pixels because it would mean that the header of the report will be scrollable. -
Hi
Can any body provide me the code for report with selection screen using ALV.
Thanks in advance
Prasanna KumarHi Prasanna,
Below is an example of ALV reporting.
*& Report ZVVF_MR028_STOCKLEDGER *
REPORT ZVVF_MR028_STOCKLEDGER .
* Tables
TABLES: EKKO, "PURCHASING DOC. HEADER
EKPO, "PURCHASING DOC. ITEM
MAKT, "MATERIAL DISCRIPTION
LFA1, "VENDOR MASTER
RSEG, "DOC. ITEM - INCOMING INVOICE
KONV, "CONDITION (TRANSECTION DATA - CLUSTER TABLE)
EKPA, "Partner Roles in Purchasing
MSEG,
t247,
mardh,
mara.
* Types Begin with TY_
TYPE-POOLS slis.
TYPES : BEGIN OF ty_head,
p_date TYPE dats,
matnr LIKE mseg-matnr,
maktx LIKE makt-maktx,
openbal LIKE mardh-labst,
r_po LIKE mseg-menge,
r_prodord LIKE mseg-menge,
r_byprod LIKE mseg-menge,
r_others LIKE mseg-menge,
R_TOTAL TYPE mseg-menge,
i_prod LIKE mseg-menge,
i_cust LIKE mseg-menge,
i_costcen LIKE mseg-menge,
i_scrapping LIKE mseg-menge,
i_subcontractor LIKE mseg-menge,
i_sampling LIKE mseg-menge,
purret LIKE mseg-menge,
i_total like mseg-menge,
stock_out LIKE mseg-menge,
stock_in LIKE mseg-menge,
stock_transit LIKE mseg-menge,
m_to_m_transit LIKE mseg-menge,
phy_loss LIKE mseg-menge,
phy_gain LIKE mseg-menge,
closing_bal LIKE mseg-menge,
current_bal LIKE mseg-menge,
bwart like mseg-bwart,
werks like mseg-werks,
END OF ty_head.
types : begin of ty_docs,
matnr like mseg-matnr, "Material
budat like mkpf-budat, "Posting date
menge like mseg-menge, "Qty
xblnr like mkpf-xblnr, "Ref doc
end of ty_docs.
data : w_cnt type I.
data : w_chk type i.
TYPES: BEGIN OF TY_KONV,
KNUMV LIKE KONV-KNUMV,
KBETR LIKE KONV-KBETR,
KSCHL LIKE KONV-KSCHL,
KWERT LIKE KONV-KAWRT,
END OF TY_KONV.
TYPES: BEGIN OF TY_KBETR,
* KBETR LIKE KONV-KBETR,
KWERT LIKE KONV-KWERT,
END OF TY_KBETR.
TYPES: BEGIN OF TY_RSEG,
EBELN LIKE RSEG-EBELN,
MATNR LIKE RSEG-MATNR,
WRBTR LIKE RSEG-WRBTR,
KSCHL LIKE RSEG-KSCHL,
LIFNR LIKE RSEG-LIFNR,
END OF TY_RSEG.
TYPES: BEGIN OF TY_NAME1,
NAME1 LIKE LFA1-NAME1,
END OF TY_NAME1.
** Each Condition and their values w.r.t different docu types
*data: begin of temp_head occurs 0,
* kschl like konv-kschl, " Condition type
* kwert like konv-kwert, " Condition value
* end of temp_head.
* Constants Begin with C_
CONSTANTS: st_formname_top_of_page TYPE slis_formname
VALUE 'TOP_OF_PAGE-ALV'.
* Data Begin with W_
*-------- Declarations for ALV Grid.
DATA: it_st_list_top_of_page TYPE slis_t_listheader,
it_st_fieldcat TYPE slis_t_fieldcat_alv,
it_st_events TYPE slis_t_event,
st_layout TYPE slis_layout_alv,
s_status TYPE slis_formname VALUE 'STANDARD_ST01',
s_user_command TYPE slis_formname VALUE 'USER_COMMAND-ALV',
s_repid LIKE sy-repid,
s_save(1) TYPE c,
s_variant LIKE disvariant,
code LIKE disvariant-handle.
data : begin of it_stockclose occurs 0,
werks like s031-werks, "Plant
matnr like mara-matnr, "Material
lgort like mard-lgort, "Storage Loc
labst like mardh-labst, "Unrestricted Stock
insme like mardh-insme, "Inspection Stock
speme like mardh-speme, "Safety stock
einme like mardh-einme, "Total stock of rest batches
retme like mardh-retme, "Blocked stock returns
end of it_stockclose.
data : begin of it_finalstock occurs 0,
werks like mseg-werks, "Plant
matnr like mseg-matnr, "Material code
lgort like mard-lgort, "Sto Loc
menge like mseg-menge, "Qty
* budat like mkpf-budat, "Posting Date
end of it_finalstock.
data : begin of it_docs occurs 0,
matnr like mseg-matnr, "Material code
budat like mkpf-budat, "Posting date
bwart like mseg-bwart, "Movement type
menge like mseg-menge, "Quantity
werks like mseg-werks, "Plant
shkzg like mseg-shkzg, "Credit/debit
lgort like mseg-lgort, "Sto Loc
maktx like makt-maktx, "Material Discription
end of it_docs.
data : begin of it_mkpf occurs 0,
budat like mkpf-budat, "Posting date
mblnr like mkpf-mblnr, "Material Doc
xblnr like mkpf-xblnr, "Delivery ref no
mjahr like mkpf-mjahr, "Fiscal yr
cpudt like mkpf-cpudt,
end of it_mkpf.
data : begin of it_mseg occurs 0,
matnr like mseg-matnr, "Material
bwart like mseg-bwart, "Movement type
menge like mseg-menge, "Qty
werks like mseg-werks, "Plant
mjahr like mseg-mjahr, "Fiscal yr
shkzg like mseg-shkzg, "Credit/Debit Indicator
lgort like mard-lgort, "Sto loc
budat like mkpf-budat, "Posting date
xblnr like mkpf-xblnr, "Delivery ref
cpudt like mkpf-cpudt,
end of it_mseg.
data : begin of it_matnr occurs 0,
matnr like mara-matnr, "Material
end of it_matnr.
data : w_monat type monat. "Month number
data : w_gjahr like sy-datum, "Date
w_date_fiscal(4) type n, "Year
w_date like sy-datum, "Date
w_buper like t009b-poper, "Posting period
w_year like t009b-bdatj, "Posting date
w_datum(2) type n. "Date
* Internal tables Begin with IT_
DATA : IT_HEAD TYPE STANDARD TABLE OF TY_HEAD WITH HEADER LINE.
***Issues and receipts
data : it_issue type ty_docs occurs 0 with header line,
it_receipt type ty_docs occurs 0 with header line,
it_issue_date type ty_docs occurs 0 with header line,
it_receipt_date type ty_docs occurs 0 with header line.
data: w_dval like mseg-menge,
w_opbal like mseg-menge.
** WORK AREAS: Begin with WA_
*DATA: wa_HEAD type TY_HEAD.
*data: w_tkwert type p decimals 2 value 0,
* grmenge like ekpo-menge,
* w_tot_kwert type p decimals 2 value 0,
* w_tmp_kwert type p decimals 2 value 0,
* w_finalsum type p decimals 2 value 0, "#EC *
* w_finalrate type p decimals 4 value 0. "#EC *
* R A N G E S
ranges: r_loekz for ekko-loekz. " Deletion Indicator
ranges : r_movtype for mseg-bwart, "Movement type
r_date for sy-datum. "Date
* Select Options Begin with SO_
SELECTION-SCREEN BEGIN OF BLOCK MAIN WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN SKIP 2.
*SELECT-OPTIONS : SO_LIFNR FOR EKKO-LIFNR.
*SELECT-OPTIONS : SO_EKORG FOR EKKO-EKORG .
*SELECT-OPTIONS : SO_WERKS FOR MSEG-WERKS .
*SELECT-OPTIONS : SO_EBELN FOR EKKO-EBELN.
*SELECT-OPTIONS : SO_DATE for sy-datum obligatory no-extension.
*SELECT-OPTIONS : SO_EKGRP FOR EKKO-EKGRP.
*SELECT-OPTIONS : SO_BSART FOR EKKO-BSART DEFAULT 'NB'.
*SELECT-OPTIONS : SO_MATKL FOR EKPO-MATKL.
*SELECT-OPTIONS : SO_MATNR FOR MSEG-MATNR.
select-options : so_werks for mseg-werks default 'P001'. "Plant
select-options : so_lgort for mseg-lgort. " Sto. Location
select-options : so_matnr for mseg-matnr obligatory. "Material code
select-options : so_mtart for mara-mtart. "Material type
SELECT-OPTIONS : SO_MATKL FOR EKPO-MATKL. "Material Group
select-options : so_date for sy-datum obligatory no-extension.
SELECTION-SCREEN SKIP 2.
selection-screen: skip,
begin of line,
comment (15) text-034.
parameters: p_all radiobutton group del.
selection-screen comment 25(9) for field p_all.
parameters: p_del radiobutton group del.
selection-screen comment 45(12) for field p_del.
parameters: p_undel radiobutton group del default 'X'.
selection-screen comment 65(14) for field p_undel.
selection-screen end of line.
SELECTION-SCREEN SKIP 2.
SELECTION-SCREEN END OF BLOCK MAIN.
* Parameters Begin with PR_
* Initialisation
INITIALIZATION.
s_repid = sy-repid.
s_save = 'A'.
perform f000_initialize_mov_type changing r_movtype[].
PERFORM eventtab_build USING it_st_events[].
PERFORM variant_init.
* S T A R T O F S E L E C T I O N
START-OF-SELECTION.
PERFORM initialize.
perform f001_determine_fiscal_period.
perform f002_determine_closing_stock changing it_stockclose[].
if not so_date-low+6(2) eq '01'.
perform f003_change_closing_stock changing it_stockclose[].
endif.
perform f004_determine_mat_docs changing it_mkpf[]
it_mseg[].
perform f005_receipts_issues using it_mseg[]
changing it_issue[]
it_receipt[]
it_matnr[].
*---alv
PERFORM comment_build USING it_st_list_top_of_page[].
PERFORM fieldcat USING it_st_fieldcat[].
PERFORM layout_build USING st_layout.
PERFORM reuse_alv_list_display.
END-OF-SELECTION.
form initialize.
clear: r_loekz.
refresh: r_loekz.
*--- Deleted PO's only
if p_del = 'X'.
r_loekz-sign = 'I'.
r_loekz-option = 'EQ'.
r_loekz-low = 'L'.
append r_loekz.
endif.
*--- UnDeleted PO's only
if p_undel = 'X'.
r_loekz-sign = 'E'.
r_loekz-option = 'EQ'.
r_loekz-low = ' '.
append r_loekz.
endif.
endform. "initialize
*& Form f000_initialize_mov_type
* Desc : Initialization of movement types
form f000_initialize_mov_type changing p_r_movtype like r_movtype[].
data : lwa_movtype like line of p_r_movtype.
lwa_movtype-sign = 'I'.
lwa_movtype-option = 'EQ'.
lwa_movtype-low = '101'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '102'.
append lwa_movtype to p_r_movtype.
* Additional changes done for other movement types--> by deepak
lwa_movtype-low = '103'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '104'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '105'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '106'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '122'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '123'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '161'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '162'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '201'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '202'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '261'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '262'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '301'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '302'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '303'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '304'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '305'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '306'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '309'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '310'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '331'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '332'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '333'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '334'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '335'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '336'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '511'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '512'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '531'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '532'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '541'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '542'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '561'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '562'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '601'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '602'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '641'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '642'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '643'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '644'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '701'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '702'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '909'.
append lwa_movtype to p_r_movtype.
lwa_movtype-low = '910'.
append lwa_movtype to p_r_movtype.
endform. " f000_initialize_mov_type
*& Form f001_determine_fiscal_period
* Desc Determination of fiscal period
form f001_determine_fiscal_period .
clear : w_monat,
w_gjahr,
w_date,
w_buper,
w_year.
w_monat = so_date-low+4(2).
if w_monat = '01'.
w_monat = '12'.
w_gjahr = so_date-low+0(4).
w_date_fiscal = w_gjahr+0(4) - 1.
w_gjahr = w_date_fiscal.
else.
w_monat = w_monat - 1.
w_gjahr = so_date-low+0(4).
endif.
concatenate w_gjahr w_monat '01' into w_gjahr.
*****Determines Fiscal yr and period
call function 'DATE_TO_PERIOD_CONVERT'
EXPORTING
i_date = w_gjahr
i_periv = 'V3'
IMPORTING
e_buper = w_buper
e_gjahr = w_year.
if sy-subrc <> 0.
endif.
w_datum = w_buper+1(2).
**Month text
select single ltx from t247 into t247-ltx
where spras = 'E'
and mnr = so_date-low+4(2).
endform. " f001_determine_fiscal_period
*& Form f001_determine_closing_stock
* Desc : Determination of closing stock
form f002_determine_closing_stock
changing p_it_stockclose like it_stockclose[].
data : lw_recs type i,
w_dval like mseg-menge,
w_opbal like mseg-menge.
data : begin of lit_stockclose occurs 0,
lfgja like mardh-lfgja, "Fiscal yr
lfmon like mardh-lfmon, "Period
werks like s031-werks, "Plant
matnr like mara-matnr, "Material
lgort like mseg-lgort, "Storage Loc
labst like mardh-labst, "Unrestricted Stock
end of lit_stockclose.
data : begin of lit_mard occurs 0,
matnr like mara-matnr,
werks like mseg-werks,
lgort like mseg-lgort,
end of lit_mard.
data : lwa_stockclose like line of p_it_stockclose.
select matnr werks lgort from mard
into corresponding fields of table lit_mard
where matnr in so_matnr
and werks in so_werks.
refresh it_stockclose.
clear it_stockclose.
*****Fetch Closing stock
*If the entry is found in MARD then consider the same
*else fetch the closing stock from MARDH.
loop at lit_mard.
refresh lit_stockclose.
clear lit_stockclose.
select werks matnr lgort labst
insme speme einme retme
lfgja lfmon
into corresponding fields of
table lit_stockclose
from mard
where lfmon = w_datum
and lfgja = w_year
and werks = lit_mard-werks
and matnr = lit_mard-matnr
and lgort = lit_mard-lgort.
clear lw_recs.
describe table lit_stockclose lines lw_recs.
*If no entry in MARD fetch from MARDH.
if lw_recs = 0.
select werks matnr lgort labst
insme speme einme retme
lfgja lfmon
into corresponding fields of
table lit_stockclose
from mardh
where lfmon = w_datum
and lfgja = w_year
and werks = lit_mard-werks
and matnr = lit_mard-matnr
and lgort = lit_mard-lgort.
endif.
sort lit_stockclose by lfgja lfmon descending.
read table lit_stockclose index 1.
if sy-subrc eq 0.
move-corresponding lit_stockclose to lwa_stockclose.
append lwa_stockclose to p_it_stockclose.
clear lwa_stockclose.
endif.
endloop.
endform. " f001_determine_closing_stock
*& Form f003_change_closing_stock
* Desc : Selection of the mat docs for the intermediate
* days if the selection begin date is not from
* first date of the corresponding month.
form f003_change_closing_stock changing
p_it_stockclose like it_stockclose[].
data : lwa_stockclose like line of p_it_stockclose[].
refresh : r_date,
it_docs,
it_finalstock.
clear : r_date,
lwa_stockclose.
r_date-sign = 'I'.
r_date-option = 'BT'.
concatenate so_date-low+0(4)
so_date-low+4(2)
'01'
into r_date-low.
r_date-high = so_date-low - 1.
append r_date.
clear r_date.
read table r_loekz index 1.
select mkpf~budat
mseg~matnr
mseg~bwart
mseg~menge
mseg~werks
mseg~shkzg
mseg~lgort
makt~maktx
into corresponding
fields of
table it_docs
from mkpf as mkpf inner join mseg as mseg
on mkpf~mandt = mseg~mandt and
mkpf~mblnr = mseg~mblnr and
mkpf~mjahr = mseg~mjahr
inner join makt as makt
on mseg~matnr = makt~matnr
where
mseg~werks IN SO_WERKS and
mseg~matnr in so_matnr and
mkpf~budat in r_date and
mseg~bwart in r_movtype.
Clear it_docs.
loop at it_docs.
if it_docs-shkzg = 'H'.
it_docs-menge = - ( it_docs-menge ).
modify it_docs.
endif.
move-corresponding it_docs to it_finalstock.
collect it_finalstock.
clear it_finalstock.
move it_docs-maktx to it_head-maktx.
endloop.
loop at p_it_stockclose into lwa_stockclose.
read table it_finalstock with key
matnr = lwa_stockclose-matnr
werks = lwa_stockclose-werks
lgort = lwa_stockclose-lgort.
if sy-subrc eq 0.
lwa_stockclose-labst = lwa_stockclose-labst +
it_finalstock-menge.
modify p_it_stockclose from lwa_stockclose.
read table p_it_stockclose into lwa_stockclose index 1.
"with key matnr = wa_head-matnr.
"budat = wa_head-p_date.
if sy-subrc = 0.
w_dval = lwa_stockclose-labst.
ENDIF.
clear lwa_stockclose.
endif.
endloop.
endform. " f003_change_closing_stock
*& Form f004_determine_mat_docs
* DEsc : Determination of Receipts and Issues
form f004_determine_mat_docs changing p_it_mkpf like it_mkpf[]
p_it_mseg like it_mseg[].
data : lwa_mkpf like line of p_it_mkpf[],
lwa_mseg like line of p_it_mseg[],
ls_quantity type mseg-menge,
sum_issue type mseg-menge,
sum_receipt type mseg-menge,
sum_531 type mseg-menge,
sum_541 type mseg-menge,
sum_101 type mseg-menge,
sum_511 type mseg-menge,
sum_261 type mseg-menge,
sum_601 type mseg-menge,
sum_201 type mseg-menge,
sum_641 type mseg-menge,
sum_po type mseg-menge,
sum_551 type mseg-menge,
sum_331 type mseg-menge,
sum_161 type mseg-menge,
sum_305 type mseg-menge,
sum_309 type mseg-menge,
sum_701 type mseg-menge,
sum_702 type mseg-menge.
***Determination of Mat Docs
select mblnr xblnr budat mjahr cpudt from mkpf
into corresponding fields
of table it_mkpf
where budat in so_date.
***Determination of Receipts and issues
* loop at p_it_mkpf into lwa_mkpf.
* select mblnr matnr bwart menge werks mjahr shkzg lgort
* from mseg into corresponding
* fields of lwa_mseg
* where mblnr = lwa_mkpf-mblnr
* and mjahr = lwa_mkpf-mjahr
* and werks in so_werks
* and matnr in so_matnr
* and bwart in r_movtype.
* if lwa_mseg-shkzg = 'H'.
* lwa_mseg-menge = - ( lwa_mseg-menge ).
* endif.
* move : lwa_mkpf-budat to lwa_mseg-budat,
* lwa_mkpf-xblnr to lwa_mseg-xblnr,
* lwa_mkpf-cpudt to lwa_mseg-cpudt.
* append lwa_mseg to p_it_mseg.
* move lwa_mseg-matnr to it_head-matnr.
* move lwa_mseg-budat to it_head-p_date.
* move lwa_mseg-bwart to it_head-bwart.
* append it_head.
* clear it_head.
* clear lwa_mseg.
* endselect.
* endloop.
sort it_mkpf by budat cpudt .
loop at it_mkpf.
at new budat.
if w_opbal = SPACE.
it_head-openbal = w_dval.
w_chk = 1.
else.
it_head-openbal = w_opbal.
w_chk = 2.
endif.
endat.
if w_chk = 1.
it_head-openbal = w_dval.
elseif w_chk = 2.
it_head-openbal = w_opbal.
endif.
select Single *
from mseg
where mblnr = it_mkpf-mblnr
and mjahr = it_mkpf-mjahr
and werks in so_werks
and matnr in so_matnr
and bwart in r_movtype.
if mseg-matnr ne SPACE.
move mseg-mblnr to it_mseg-xblnr.
move mseg-matnr to it_mseg-matnr.
move mseg-bwart to IT_mseg-bwart.
move mseg-menge to it_mseg-menge.
move mseg-werks to it_mseg-werks.
move mseg-mjahr to it_mseg-mjahr.
move mseg-shkzg to it_mseg-shkzg.
move mseg-lgort to it_mseg-lgort.
if it_mseg-shkzg = 'H'.
it_mseg-menge = - ( lwa_mseg-menge ).
endif.
move : it_mkpf-budat to it_mseg-budat,
it_mkpf-xblnr to it_mseg-xblnr,
it_mkpf-cpudt to it_mseg-cpudt.
* append lwa_mseg to p_it_mseg.
append it_mseg.
* it_head-R_PO = it_head-r_po + ls_quantity.
if ( it_mseg-bwart eq '101'
or it_mseg-bwart eq '102'
or it_mseg-bwart eq '103'
or it_mseg-bwart eq '104'
or it_mseg-bwart eq '105'
or it_mseg-bwart eq '106'
or it_mseg-bwart eq '161'
or it_mseg-bwart eq '162'
or it_mseg-bwart eq '122'
or it_mseg-bwart eq '123'
or it_mseg-bwart eq '511'
or it_mseg-bwart eq '512'
or it_mseg-bwart eq '531'
or it_mseg-bwart eq '532'
or it_mseg-bwart eq '561'
or it_mseg-bwart eq '562'
or it_mseg-bwart eq '305'
or it_mseg-bwart eq '306'
or it_mseg-bwart eq '702') and it_mseg-shkzg = 'S'.
move it_mseg-menge to ls_quantity.
sum_receipt = sum_receipt + ls_quantity.
elseif
( it_mseg-bwart eq '261'
or it_mseg-bwart eq '262'
or it_mseg-bwart eq '601'
or it_mseg-bwart eq '602'
or it_mseg-bwart eq '201'
or it_mseg-bwart eq '202'
or it_mseg-bwart eq '551'
or it_mseg-bwart eq '552'
or it_mseg-bwart eq '541'
or it_mseg-bwart eq '542'
or it_mseg-bwart eq '331'
or it_mseg-bwart eq '332'
or it_mseg-bwart eq '333'
or it_mseg-bwart eq '334'
or it_mseg-bwart eq '335'
or it_mseg-bwart eq '336'
or it_mseg-bwart eq '641'
or it_mseg-bwart eq '642'
or it_mseg-bwart eq '643'
or it_mseg-bwart eq '644'
or it_mseg-bwart eq '351'
or it_mseg-bwart eq '352'
or it_mseg-bwart eq '301'
or it_mseg-bwart eq '302'
or it_mseg-bwart eq '303'
or it_mseg-bwart eq '304'
or it_mseg-bwart eq '309'
or it_mseg-bwart eq '310'
or it_mseg-bwart eq '909'
or it_mseg-bwart eq '910'
or it_mseg-bwart eq '701') and it_mseg-shkzg = 'S'.
move it_mseg-menge to ls_quantity.
sum_issue = sum_issue + ls_quantity.
endif.
if ( it_mseg-bwart eq '101' or it_mseg-bwart eq '102'
or it_mseg-bwart eq '103' or it_mseg-bwart eq '104'
or it_mseg-bwart eq '105' or it_mseg-bwart eq '106')
And it_mseg-shkzg = 'S'.
move it_mseg-menge to ls_quantity.
sum_po = sum_po + ls_quantity.
endif.
if ( it_mseg-bwart eq '531'
or it_mseg-bwart eq '532') and it_mseg-shkzg = 'S'.
move it_mseg-menge to ls_quantity.
sum_531 = sum_531 + ls_quantity.
endif.
if ( it_mseg-bwart eq '541' or it_mseg-bwart eq '542' ).
move it_mseg-menge to ls_quantity.
sum_541 = sum_541 + ls_quantity.
endif.
if ( it_mseg-bwart eq '102' or it_mseg-bwart eq '102' ).
move it_mseg-menge to ls_quantity.
sum_101 = sum_101 + ls_quantity.
endif.
if ( it_mseg-bwart eq '561' or it_mseg-bwart eq '562'
OR IT_MSEG-BWART EQ '511' OR it_mseg-bwart eq '512').
move it_mseg-menge to ls_quantity.
sum_511 = sum_511 + ls_quantity.
endif.
if ( it_mseg-bwart eq '261' or it_mseg-bwart eq '262').
move it_mseg-menge to ls_quantity.
sum_261 = sum_261 + ls_quantity.
endif.
if ( it_mseg-bwart eq '601' or it_mseg-bwart eq '602').
move it_mseg-menge to ls_quantity.
sum_601 = sum_601 + ls_quantity.
endif.
if ( it_mseg-bwart eq '201' or it_mseg-bwart eq '202').
move it_mseg-menge to ls_quantity.
sum_201 = sum_201 + ls_quantity.
endif.
if ( it_mseg-bwart eq '551' or it_mseg-bwart eq '552').
move it_mseg-menge to ls_quantity.
sum_551 = sum_551 + ls_quantity.
endif.
if ( it_mseg-bwart eq '331' or it_mseg-bwart eq '332'
or it_mseg-bwart eq '333' or it_mseg-bwart eq '334'
or it_mseg-bwart eq '335' or it_mseg-bwart eq '336').
move it_mseg-menge to ls_quantity.
sum_331 = sum_331 + ls_quantity.
endif.
if ( it_mseg-bwart eq '161' or it_mseg-bwart eq '162'
or it_mseg-bwart eq '123' or it_mseg-bwart eq '122').
move it_mseg-menge to ls_quantity.
sum_161 = sum_161 + ls_quantity.
endif.
if ( it_mseg-bwart eq '641' or it_mseg-bwart eq '642'
or it_mseg-bwart eq '643' or it_mseg-bwart eq '644'
or it_mseg-bwart eq '351' or it_mseg-bwart eq '352'
or it_mseg-bwart eq '301' or it_mseg-bwart eq '302'
or it_mseg-bwart eq '303' or it_mseg-bwart eq '304').
move it_mseg-menge to ls_quantity.
sum_641 = sum_641 + ls_quantity.
endif.
if ( it_mseg-bwart eq '305' or it_mseg-bwart eq '306').
move it_mseg-menge to ls_quantity.
sum_305 = sum_305 + ls_quantity.
endif.
if ( it_mseg-bwart eq '309' or it_mseg-bwart eq '310'
or it_mseg-bwart eq '909' or it_mseg-bwart eq '910').
move it_mseg-menge to ls_quantity.
sum_309 = sum_309 + ls_quantity.
endif.
if ( it_mseg-bwart eq '701').
move it_mseg-menge to ls_quantity.
sum_701 = sum_701 + ls_quantity.
endif.
if ( it_mseg-bwart eq '702').
move it_mseg-menge to ls_quantity.
sum_702 = sum_702 + ls_quantity.
endif.
at end of budat.
it_head-closing_bal = ( it_head-openbal + sum_receipt ) - sum_issue.
w_opbal = it_head-closing_bal.
move it_mseg-matnr to it_head-matnr.
move it_mseg-budat to it_head-p_date.
move it_mseg-bwart to it_head-bwart.
move sum_po to it_head-R_po.
move sum_101 to it_head-R_ProdOrd.
move sum_531 to it_head-R_ByProd.
move sum_511 to it_head-R_OTHERS.
move sum_receipt to it_head-r_total.
move sum_261 to it_head-I_Prod.
move sum_601 to it_head-I_cust.
move sum_201 to it_head-I_CostCen.
move sum_551 to it_head-I_Scrapping.
move sum_541 to it_head-I_subcontractor.
move sum_331 to it_head-I_Sampling.
move sum_issue to it_head-i_total.
move sum_161 to it_head-PurRet.
move sum_641 to it_head-stock_out.
move sum_305 to it_head-stock_in.
move sum_309 to it_head-M_to_M_transit.
move sum_701 to it_head-phy_loss.
move sum_702 to it_head-phy_gain.
append it_head.
w_chk = 0.
sum_issue = 0.
sum_receipt = 0.
sum_531 = 0.
sum_541 = 0.
sum_101 = 0.
SUM_511 = 0.
sum_261 = 0.
sum_601 = 0.
sum_201 = 0.
sum_po = 0.
sum_551 = 0.
sum_641 = 0.
sum_701 = 0.
sum_702 = 0.
endat.
clear it_head.
clear it_mseg.
endif.
endloop.
sort it_mseg by matnr budat bwart.
sort it_head by matnr p_date bwart.
delete ADJACENT duplicates from it_head.
endform. " f004_determine_mat_docs
*& Form f005_receipts_issues
* Desc
form f005_receipts_issues using p_it_mseg like it_mseg[]
changing p_it_issue like it_issue[]
p_it_receipt like it_receipt[]
p_it_matnr like it_matnr[].
data : lwa_mseg like line of p_it_mseg[],
lwa_issue like line of p_it_issue[],
lwa_receipt like line of p_it_receipt[],
lwa_matnr like line of p_it_matnr[],
ls_quantity type mseg-menge,
wa_head type ty_head,
lwa_stockclose like line of it_stockclose[].
* sort it_head by bwart p_date matnr.
* loop at it_head into wa_head.
* read table p_it_mseg into lwa_mseg with key bwart = wa_head-bwart.
* if sy-subrc = 0.
* if ( lwa_mseg-bwart eq '101'
* or lwa_mseg-bwart eq '102'
* or lwa_mseg-bwart eq '103'
* or lwa_mseg-bwart eq '104'
* or lwa_mseg-bwart eq '105'
* or lwa_mseg-bwart eq '106') and lwa_mseg-shkzg = 'S'.
* loop at p_it_mseg into lwa_mseg where matnr = wa_head-matnr
* and budat = wa_head-p_date
* and bwart = wa_head-bwart.
* move lwa_mseg-menge to ls_quantity.
* wa_head-R_PO = ls_quantity + wa_head-R_PO.
* modify it_head from wa_head.
* endloop.
* clear ls_quantity .
* endif.
* if ( lwa_mseg-bwart eq '641'
* and lwa_mseg-shkzg = 'S' ).
* loop at p_it_mseg into lwa_mseg where matnr = wa_head-matnr
* and budat = wa_head-p_date
* and bwart = wa_head-bwart.
* IF SY-SUBRC = 0 .
* move lwa_mseg-menge to ls_quantity.
* wa_head-stock_out = ls_quantity + wa_head-stock_out.
* modify it_head from wa_head.
* ENDIF.
* endloop.
* clear ls_quantity .
* endif.
* read table it_stockclose into lwa_stockclose
* with key matnr = wa_head-matnr.
* "budat = wa_head-p_date.
* if sy-subrc = 0.
* wa_head-openbal = lwa_stockclose-labst.
* modify it_head from wa_head.
* ENDIF.
* endif.
* endloop.
* sort it_head by bwart p_date matnr.
* loop at it_head into wa_head.
* read table it_mseg into lwa_mseg with key bwart = wa_head-bwart.
* if sy-subrc = 0.
* if ( lwa_mseg-bwart eq '101'
* or lwa_mseg-bwart eq '102'
* or lwa_mseg-bwart eq '103'
* or lwa_mseg-bwart eq '104'
* or lwa_mseg-bwart eq '105'
* or lwa_mseg-bwart eq '106') and lwa_mseg-shkzg = 'S'.
* loop at it_mseg into lwa_mseg where matnr = wa_head-matnr
* and budat = wa_head-p_date
* and bwart = wa_head-bwart.
* move lwa_mseg-menge to ls_quantity.
* wa_head-R_PO = ls_quantity + wa_head-R_PO.
* modify it_head from wa_head.
* endloop.
* clear ls_quantity .
* endif.
* if ( lwa_mseg-bwart eq '641'
* and lwa_mseg-shkzg = 'S' ).
* loop at it_mseg into lwa_mseg where matnr = wa_head-matnr
* and budat = wa_head-p_date
* and bwart = wa_head-bwart.
* IF SY-SUBRC = 0 .
* move lwa_mseg-menge to ls_quantity.
* wa_head-stock_out = ls_quantity + wa_head-stock_out.
* modify it_head from wa_head.
* ENDIF.
* endloop.
* clear ls_quantity .
* endif.
* read table it_stockclose into lwa_stockclose
* with key matnr = wa_head-matnr.
* "budat = wa_head-p_date.
* if sy-subrc = 0.
* wa_head-openbal = lwa_stockclose-labst.
* modify it_head from wa_head.
* ENDIF.
* endif.
* endloop.
endform. " f005_receipts_issues
*& Form COMMENT_BUILD
* text
* --> p1 text
* <-- p2 text
FORM comment_build USING p_it_st_list_top_of_page TYPE slis_t_listheader
DATA: ls_line TYPE slis_listheader.
REFRESH p_it_st_list_top_of_page.
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = 'Details of Stock Ledger'.
APPEND ls_line TO p_it_st_list_top_of_page.
ENDFORM. " COMMENT_BUILD
*& Form TOP_OF_PAGE-ALV
* text
FORM top_of_page-alv.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_st_list_top_of_page.
ENDFORM. "TOP_OF_PAGE-ALV
*& Form FIELDCAT
* -->P_IT_ST_FIELDCAT[] text
FORM fieldcat USING p_it_st_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'P_DATE'.
ls_fieldcat-datatype = 'P_DATE'.
ls_fieldcat-outputlen = 18.
ls_fieldcat-seltext_m = text-002 .
* ls_fieldcat-rollname = 'MATNR'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-rollname = 'MATNR'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-outputlen = 18.
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MAKTX'.
ls_fieldcat-rollname = 'MAKTX'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-outputlen = 40.
APPEND ls_fieldcat TO p_it_st_fieldcat.
* CLEAR ls_fieldcat.
* ls_fieldcat-fieldname = 'BWART'.
* ls_fieldcat-rollname = 'BWART'.
* ls_fieldcat-ddictxt = 'L'.
* APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'OPENBAL'.
ls_fieldcat-rollname = 'OPENBAL'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-003 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'R_PO'.
ls_fieldcat-rollname = 'R_PO'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-004 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'R_PRODORD'.
ls_fieldcat-rollname = 'R_PRODORD'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-005 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'R_BYPROD'.
ls_fieldcat-rollname = 'R_BYPROD'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-006 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'R_OTHERS'.
ls_fieldcat-rollname = 'R_OTHERS'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-007 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'R_TOTAL'.
ls_fieldcat-rollname = 'R_TOTAL'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-008 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'I_PROD'.
ls_fieldcat-rollname = 'I_PROD'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-009 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'I_CUST'.
ls_fieldcat-rollname = 'I_CUST'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-010 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'I_COSTCEN'.
ls_fieldcat-rollname = 'I_COSTCEN'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-011 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'I_SCRAPPING'.
ls_fieldcat-rollname = 'I_SCRAPPING'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-012 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'I_SUBCONTRACTOR'.
ls_fieldcat-rollname = 'I_SUBCONTRACTOR'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-013 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'I_SAMPLING'.
ls_fieldcat-rollname = 'I_SAMPLING'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-014 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'I_TOTAL'.
ls_fieldcat-rollname = 'I_TOTAL'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-015 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PURRET'.
ls_fieldcat-rollname = 'PURRET'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-016 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'STOCK_OUT'.
ls_fieldcat-rollname = 'STOCK_OUT'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-017 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'STOCK_IN'.
ls_fieldcat-rollname = 'STOCK_IN'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-018 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'STOCK_TRANSIT'.
ls_fieldcat-rollname = 'STOCK_TRANSIT'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-019 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'M_TO_M_TRANSIT'.
ls_fieldcat-rollname = 'M_TO_M_TRANSIT'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-020 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PHY_LOSS'.
ls_fieldcat-rollname = 'PHY_LOSS'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-021 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PHY_GAIN'.
ls_fieldcat-rollname = 'PHY_GAIN'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-022 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'CLOSING_BAL'.
ls_fieldcat-rollname = 'CLOSING_BAL'.
ls_fieldcat-ddictxt = 'L'.
ls_fieldcat-seltext_m = text-023 .
APPEND ls_fieldcat TO p_it_st_fieldcat.
ENDFORM. " FIELDCAT
*& Form LAYOUT_BUILD
* text
* -->P_ST_LAYOUT text
FORM layout_build USING p_st_layout TYPE slis_layout_alv.
p_st_layout-box_fieldname = 'SELK'. " Checkbox
p_st_layout-get_selinfos = 'X'.
p_st_layout-f2code = 'PICK' . " Doppelklickfunktion
p_st_layout-confirmation_prompt = 'X'. "Sicherheitsabfrage
p_st_layout-key_hotspot = 'X'. "Schlüssel als Hotspot
p_st_layout-info_fieldname = 'COL'. "Zeilenfarbe
ENDFORM. " LAYOUT_BUILD
*& Form REUSE_ALV_LIST_DISPLAY
* text
FORM reuse_alv_list_display .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_background_id = 'ALV_BACKGROUND'
i_callback_program = s_repid
* I_CALLBACK_PF_STATUS_SET = S_STATUS
* I_CALLBACK_USER_COMMAND = S_USER_COMMAND
* I_STRUCTURE_NAME = ''
* IS_LAYOUT = ST_LAYOUT
it_fieldcat = it_st_fieldcat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS = ST_SP_GROUP
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = S_SAVE
* IS_VARIANT = S_VARIANT
IT_EVENTS = IT_ST_EVENTS[]
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_head.
ENDFORM. " REUSE_ALV_LIST_DISPLAY
*& Form EVENTTAB_BUILD
* text
* -->P_IT_ST_EVENTS[] text
FORM eventtab_build USING p_st_events TYPE slis_t_event .
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = p_st_events.
READ TABLE p_st_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE st_formname_top_of_page TO ls_event-form.
APPEND ls_event TO p_st_events.
ENDIF.
READ TABLE p_st_events WITH KEY name = slis_ev_user_command
INTO ls_event.
IF sy-subrc = 0.
MOVE s_user_command TO ls_event-form.
APPEND ls_event TO p_st_events.
ENDIF.
* READ TABLE p_st_events WITH KEY name = slis_ev_pf_status_set
* INTO ls_event.
* IF sy-subrc = 0.
* MOVE s_status TO ls_event-form.
* APPEND ls_event TO p_st_events.
* ENDIF.
ENDFORM. " EVENTTAB_BUILD
*& Form VARIANT_INIT
* text
* --> p1 text
* <-- p2 text
FORM variant_init .
CLEAR s_variant.
s_variant-report = s_repid.
s_variant-handle = code.
ENDFORM. " VARIANT_INIT -
Hi please send code for displaying index in alv report
hi
thanx in advance.
code please for displaying index in alv report.
thanx
rockyadd one more field to ur internal table
index type i .
before u display ALV
loop at itab.
itab-index = sy-tabix.
modify itab index sy-tabix.
endloop.
Message was edited by:
chandrasekhar jagarlamudi -
Plz send me the code of interctive ALV report
Hi
plz send me the code of interctive ALV report
thanks in advance
rachuHi
<u><b>For More alv report examples check these Tcodes <i>LIBS, BIBS</i>Here u can find more number of examples on alv reports of different kinds</b></u>
Check this sample code
TYPE-POOLS: SLIS.
*type declaration for values from ekko
TYPES: BEGIN OF I_EKKO,
EBELN LIKE EKKO-EBELN,
AEDAT LIKE EKKO-AEDAT,
BUKRS LIKE EKKO-BUKRS,
BSART LIKE EKKO-BSART,
LIFNR LIKE EKKO-LIFNR,
END OF I_EKKO.
DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
WA_EKKO TYPE I_EKKO.
*type declaration for values from ekpo
TYPES: BEGIN OF I_EKPO,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
END OF I_EKPO.
DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
WA_EKPO TYPE I_EKPO .
*variable for Report ID
DATA: V_REPID LIKE SY-REPID .
*declaration for fieldcatalog
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
* declaration for events table where user comand or set PF status will
* be defined
DATA: V_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT.
* declartion for layout
DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
* declaration for variant(type of display we want)
DATA: I_VARIANT TYPE DISVARIANT,
I_VARIANT1 TYPE DISVARIANT,
I_SAVE(1) TYPE C.
*PARAMETERS : p_var TYPE disvariant-variant.
*Title displayed when the alv list is displayed
DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
INITIALIZATION.
V_REPID = SY-REPID.
PERFORM BUILD_FIELDCATLOG.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_REPORT.
*& Form BUILD_FIELDCATLOG
* Fieldcatalog has all the field details from ekko
FORM BUILD_FIELDCATLOG.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'AEDAT'.
WA_FIELDCAT-SELTEXT_M = 'DATE.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'LIFNR'.
WA_FIELDCAT-NO_OUT = 'X'.
WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG
*& Form EVENT_CALL
* we get all events - TOP OF PAGE or USER COMMAND in table v_events
FORM EVENT_CALL.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
* EXCEPTIONS
* LIST_TYPE_WRONG = 1
* OTHERS = 2
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "EVENT_CALL
*& Form POPULATE_EVENT
* Events populated for TOP OF PAGE & USER COMAND
FORM POPULATE_EVENT.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
ENDIF.
ENDFORM. "POPULATE_EVENT
*& Form data_retrieval
* retreiving values from the database table ekko
FORM DATA_RETRIEVAL.
SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
ENDFORM. "data_retrieval
*& Form bUild_listheader
* text
* -->I_LISTHEADEtext
FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA HLINE TYPE SLIS_LISTHEADER.
HLINE-INFO = 'this is my first alv pgm'.
HLINE-TYP = 'H'.
ENDFORM. "build_listheader
*& Form display_alv_report
* text
FORM DISPLAY_ALV_REPORT.
V_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_GRID_TITLE = I_TITLE_EKKO
* I_GRID_SETTINGS =
* IS_LAYOUT = ALV_LAYOUT
IT_FIELDCAT = I_FIELDCAT[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* i_default = 'ZLAY1'
I_SAVE = 'A'
* is_variant = i_variant
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKKO
* 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 TOP_OF_PAGE
* text
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
* i_logo =
* I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*& Form USER_COMMAND
* text
* -->R_UCOMM text
* -->, text
* -->RS_SLEFIELDtext
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
PERFORM BUILD_FIELDCATLOG_EKPO.
PERFORM EVENT_CALL_EKPO.
PERFORM POPULATE_EVENT_EKPO.
PERFORM DATA_RETRIEVAL_EKPO.
PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_EKPO.
ENDCASE.
ENDFORM. "user_command
*& Form BUILD_FIELDCATLOG_EKPO
* text
FORM BUILD_FIELDCATLOG_EKPO.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELP'.
WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MENGE'.
WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-SELTEXT_M = 'UOM'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'NETPR'.
WA_FIELDCAT-SELTEXT_M = 'PRICE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG_EKPO
*& Form event_call_ekpo
* we get all events - TOP OF PAGE or USER COMMAND in table v_events
FORM EVENT_CALL_EKPO.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
* EXCEPTIONS
* LIST_TYPE_WRONG = 1
* OTHERS = 2
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "event_call_ekpo
*& Form POPULATE_EVENT
* Events populated for TOP OF PAGE & USER COMAND
FORM POPULATE_EVENT_EKPO.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
ENDFORM. "POPULATE_EVENT
*& Form TOP_OF_PAGE
* text
FORM F_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
* i_logo =
* I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*& Form USER_COMMAND
* text
* -->R_UCOMM text
* -->, text
* -->RS_SLEFIELDtext
*retreiving values from the database table ekko
FORM DATA_RETRIEVAL_EKPO.
SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
ENDFORM.
FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA: HLINE1 TYPE SLIS_LISTHEADER.
HLINE1-TYP = 'H'.
HLINE1-INFO = 'CHECKING PGM'.
ENDFORM.
FORM DISPLAY_ALV_EKPO.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = 'F_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 = I_TITLE_EKPO
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = I_FIELDCAT[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT =
I_SAVE = 'A'
* IS_VARIANT =
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKPO
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.
Try this links...
http://www.****************/Tutorials/ALV/ALVMainPage.htm
Simple ALV report
http://www.sapgenie.com/abap/controls/alvgrid.htm
http://wiki.ittoolbox.com/index.php/Code:Ultimate_ALV_table_toolbox
ALV
1. Please give me general info on ALV.
http://www.sapfans.com/forums/viewtopic.php?t=58286
http://www.sapfans.com/forums/viewtopic.php?t=76490
http://www.sapfans.com/forums/viewtopic.php?t=20591
http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.
2. How do I program double click in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=11601
http://www.sapfans.com/forums/viewtopic.php?t=23010
3. How do I add subtotals (I have problem to add them)...
http://www.sapfans.com/forums/viewtopic.php?t=20386
http://www.sapfans.com/forums/viewtopic.php?t=85191
http://www.sapfans.com/forums/viewtopic.php?t=88401
http://www.sapfans.com/forums/viewtopic.php?t=17335
4. How to add list heading like top-of-page in ABAP lists?
http://www.sapfans.com/forums/viewtopic.php?t=58775
http://www.sapfans.com/forums/viewtopic.php?t=60550
http://www.sapfans.com/forums/viewtopic.php?t=16629
5. How to print page number / total number of pages X/XX in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)
6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.
http://www.sapfans.com/forums/viewtopic.php?t=64320
http://www.sapfans.com/forums/viewtopic.php?t=44477
7. How can I set the cell color in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=52107
8. How do I print a logo/graphics in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=81149
http://www.sapfans.com/forums/viewtopic.php?t=35498
http://www.sapfans.com/forums/viewtopic.php?t=5013
9. How do I create and use input-enabled fields in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=84933
http://www.sapfans.com/forums/viewtopic.php?t=69878
10. How can I use ALV for reports that are going to be run in background?
http://www.sapfans.com/forums/viewtopic.php?t=83243
http://www.sapfans.com/forums/viewtopic.php?t=19224
11. How can I display an icon in ALV? (Common requirement is traffic light icon).
http://www.sapfans.com/forums/viewtopic.php?t=79424
http://www.sapfans.com/forums/viewtopic.php?t=24512
12. How can I display a checkbox in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=88376
http://www.sapfans.com/forums/viewtopic.php?t=40968
http://www.sapfans.com/forums/viewtopic.php?t=6919
Reward all helpful answers
Regards
Pavan
Message was edited by:
Pavan praveen -
Query regarding calling T-code MIGO from ALV report output
Dear friends,
I have to call MIGO transaction from my ALV report output. Now problem is that I have to set the value 'display' In the first header field, 'Material Document' in 2nd header field when MIGO is called from the report output. Morever there is no parameter ID for these two fields. So how to set the values w/o using parameter ids.
Regards,
RishiHi,
Try this coding,
FORM DISPLAY.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = AK_LAYOUT
IT_FIELDCAT = AK_FIELDCAT
TABLES
T_OUTTAB = ITAB.
ENDFORM. " DISPLAY
*& Form EVENT
FORM EVENT USING P_AK_EVENT TYPE SLIS_T_EVENT.
DATA : AK_EVENT1 TYPE SLIS_ALV_EVENT.
AK_EVENT1-NAME = 'USER_COMMAND'.
AK_EVENT1-FORM = 'USER_COMMAND'.
APPEND AK_EVENT1 TO P_AK_EVENT.
ENDFORM. " EVENT
*& Form USER_COMMAND
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
IF R_UCOMM = '&IC1'.
" AND SY-LSIND = '1'.
READ TABLE ITAB INDEX RS_SELFIELD-TABINDEX.
SET PARAMETER ID 'AUN' FIELD ITAB-BUDAT.
CALL TRANSACTION 'MIGO' AND SKIP FIRST SCREEN.
ENDIF.
ENDFORM. " USER_COMMAND
Regards,
Nikhil. -
Hi all,
i have to develop a ALV report.
In that report i have to put a open quantity column , so that the user can enter values in that, and that value should get updated in the database.
So please suggest me how to develop such report with open field.
Thanks in advance,
Regards,
PawanHi,
Try executing the below code
REPORT YMS_EDITBLOCKALV.
TABLES : rmmg1,MCHB, mkpf.
DATA: BEGIN OF t_mseg OCCURS 0,
zeile LIKE mseg-zeile,
menge LIKE mseg-menge,
meins LIKE mseg-meins,
matnr LIKE mseg-matnr,
werks LIKE mseg-werks,
charg LIKE mseg-charg,
bwart LIKE mseg-bwart,
END OF t_mseg.
DATA:BEGIN OF t_mchb OCCURS 0.
INCLUDE STRUCTURE mchb.
data flag type c.
matnr LIKE mchb-matnr,
charg LIKE mchb-charg,
werks LIKE mchb-werks,
clabs LIKE mchb-clabs,
DATA END OF t_mchb.
TYPE-POOLS slis.
data: progname like sy-repid,
fieldcattab TYPE slis_t_fieldcat_alv WITH HEADER LINE.
data tabindex type i.
data wa_matnr LIKE mchb-matnr.
progname = sy-repid.
SELECTION-SCREEN BEGIN OF BLOCK b_b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS s_docno FOR mkpf-mblnr. " OBLIGATORY.
PARAMETERS p_docyr LIKE mkpf-mjahr. " OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b_b1.
START-OF-SELECTION.
SELECT zeile
menge
meins
matnr
werks
charg
bwart
FROM mseg
INTO TABLE t_mseg
WHERE mblnr IN s_docno AND mjahr = p_docyr.
CLEAR fieldcattab.
fieldcattab-col_pos = 1.
fieldcattab-fieldname = 'ZEILE'.
fieldcattab-tabname = 'T_MSEG'.
fieldcattab-fix_column = 'X'.
fieldcattab-seltext_l = 'Item'.
APPEND fieldcattab.
CLEAR fieldcattab.
fieldcattab-col_pos = 2.
fieldcattab-fieldname = 'MENGE'.
fieldcattab-tabname = 'T_MSEG'.
fieldcattab-seltext_l = 'Quantity'.
APPEND fieldcattab.
CLEAR fieldcattab.
fieldcattab-col_pos = 3.
fieldcattab-fieldname = 'MEINS'.
fieldcattab-tabname = 'T_MSEG'.
fieldcattab-seltext_l = 'Unit'.
APPEND fieldcattab.
CLEAR fieldcattab.
fieldcattab-col_pos = 4.
fieldcattab-fieldname = 'MATNR'.
fieldcattab-tabname = 'T_MSEG'.
fieldcattab-seltext_l = 'Material'.
APPEND fieldcattab.
CLEAR fieldcattab.
fieldcattab-col_pos = 5.
fieldcattab-fieldname = 'WERKS'.
fieldcattab-tabname = 'T_MSEG'.
fieldcattab-seltext_l = 'Plant'.
APPEND fieldcattab.
CLEAR fieldcattab.
fieldcattab-col_pos = 6.
fieldcattab-fieldname = 'CHARG'.
fieldcattab-tabname = 'T_MSEG'.
fieldcattab-seltext_l = 'Batch No'.
APPEND fieldcattab.
CLEAR fieldcattab.
fieldcattab-col_pos = 7.
fieldcattab-fieldname = 'BWART'.
fieldcattab-tabname = 'T_MSEG'.
fieldcattab-seltext_l = 'Inventory'.
fieldcattab-hotspot = 'X'.
APPEND fieldcattab.
end-of-selection.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = PROGNAME
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USERCOMMAND1'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = fieldcattab[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT = fieldcattab
IT_HYPERLINK =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = t_mseg
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 usercommand1 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE
slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
tabindex = rs_selfield-tabindex.
read table t_mseg INDEX tabindex.
select * from mchb into table t_mchb where matnr = t_mseg-matnr.
clear fieldcattab.
CLEAR fieldcattab[].
fieldcattab-col_pos = 1.
fieldcattab-fieldname = 'FLAG'.
fieldcattab-tabname = 'T_MCHB'.
fieldcattab-fix_column = 'X'.
fieldcattab-seltext_l = 'Check Box'.
fieldcattab-input = 'X'.
fieldcattab-edit = 'X'.
fieldcattab-checkbox = 'X'.
APPEND fieldcattab.
clear fieldcattab.
fieldcattab-col_pos = 2.
fieldcattab-fieldname = 'MATNR'.
fieldcattab-tabname = 'T_MCHB'.
fieldcattab-fix_column = 'X'.
fieldcattab-seltext_l = 'Material'.
fieldcattab-emphasize = 'C1'.
fieldcattab-input = 'X'.
fieldcattab-edit = 'X'.
fieldcattab-checkbox = 'X'.
APPEND fieldcattab.
clear fieldcattab.
fieldcattab-col_pos = 3.
fieldcattab-fieldname = 'CHARG'.
fieldcattab-tabname = 'T_MCHB'.
fieldcattab-seltext_l = 'Batch No'.
fieldcattab-emphasize = 'C2'.
fieldcattab-input = 'X'.
fieldcattab-edit = 'X'.
APPEND fieldcattab.
clear fieldcattab.
fieldcattab-col_pos = 4.
fieldcattab-fieldname = 'WERKS'.
fieldcattab-tabname = 'T_MCHB'.
fieldcattab-seltext_l = 'Plant'.
fieldcattab-emphasize = 'C30'.
fieldcattab-input = 'X'.
fieldcattab-edit = 'X'.
APPEND fieldcattab.
clear fieldcattab.
fieldcattab-col_pos = 5.
fieldcattab-fieldname = 'CLABS'.
fieldcattab-tabname = 'T_MCHB'.
fieldcattab-seltext_l = 'Stock'.
fieldcattab-emphasize = 'C601'.
fieldcattab-input = 'X'.
fieldcattab-edit = 'X'.
APPEND fieldcattab.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = PROGNAME
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USERCOMMAND2'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = FIELDCATTAB[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = t_mchb
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.
FORM usercommand2 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE
slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
IF rs_selfield-sel_tab_field = 'T_MCHB-MATNR'.
CALL FUNCTION 'ZALV2'
EXPORTING
CTU = 'X'
MODE = 'E'
UPDATE = 'A'
GROUP =
USER =
KEEP =
HOLDDATE =
NODATA = '/'
MATNR_001 = '200-200'
KZSEL_01_002 = 'X'
IMPORTING
SUBRC =
TABLES
MESSTAB =
SET PARAMETER ID 'RID' FIELD RMMG1-MATNR.
CALL TRANSACTION 'MM03' and skip first screen.
ENDIF.
ENDCASE.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = progname
i_callback_user_command = 'USERCOMMAND3'
it_fieldcat = fieldcattab[]
TABLES
t_outtab = t_mchb
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.
Regards,
chandru -
hi,
How to use PF STATUS IN ALV REPORT?HI,
see this code.
TABLES:MARA.
SELECT-OPTIONS: MATNR FOR MARA-MATNR.
DATA:BEGIN OF ITAB OCCURS 0,
MATNR LIKE MARA-MATNR,
ERSDA LIKE MARA-ERSDA,
MTART LIKE MARA-MTART,
MBRSH LIKE MARA-MBRSH,
END OF ITAB.
SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE MATNR
IN MATNR.
TYPE-POOLS SLIS.
DATA:FCAT TYPE slis_t_fieldcat_alv.
DATA:LAYOUT TYPE slis_layout_alv.
DATA:EVE TYPE slis_t_event WITH HEADER LINE.
DATA:HEAD TYPE slis_t_listheader WITH HEADER LINE.
DATA:SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE.
SORT-UP = 'X'.
SORT-SPOS = 1.
SORT-FIELDNAME = 'ERSDA'.
SORT-tabname = 'MARA'.
APPEND SORT.
SORT-SPOS = 2.
SORT-FIELDNAME = 'MTART'.
SORT-tabname = 'MARA'.
APPEND SORT.
EVE-NAME = 'TOP_OF_PAGE'.
EVE-FORM = 'TOPOFPAGE'.
APPEND EVE.
EVE-NAME = 'TOP_OF_LIST'.
EVE-FORM = 'TOPOFLIST'.
APPEND EVE.
EVE-NAME = 'END_OF_LIST'.
EVE-FORM = 'ENDOFLIST'.
APPEND EVE.
LAYOUT-ZEBRA = 'X'.
LAYOUT-no_hline = 'X'.
LAYOUT-NO_VLINE = 'X'.
LAYOUT-window_titlebar = 'MATERIAL DETAILS'.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'ITAB'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = SY-REPID
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = 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.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
<b> I_CALLBACK_PF_STATUS_SET = 'STATUS'
I_CALLBACK_USER_COMMAND = 'UCOMM'</b>
I_STRUCTURE_NAME =
IS_LAYOUT = LAYOUT
IT_FIELDCAT = FCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = SORT[]
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = EVE[]
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 5
I_SCREEN_START_LINE = 5
I_SCREEN_END_COLUMN = 120
I_SCREEN_END_LINE = 25
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
FORM TOPOFPAGE.
REFRESH HEAD.
HEAD-TYP = 'H'.
HEAD-INFO = 'MATERIALS'.
APPEND HEAD.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = HEAD[]
I_LOGO =
I_END_OF_LIST_GRID =
ENDFORM.
FORM TOPOFLIST.
REFRESH HEAD.
HEAD-TYP = 'H'.
HEAD-INFO = 'MATERIALS-LISTTOP'.
APPEND HEAD.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = HEAD[]
I_LOGO =
I_END_OF_LIST_GRID =
ENDFORM.
FORM ENDOFLIST.
REFRESH HEAD.
HEAD-TYP = 'H'.
HEAD-INFO = 'MATERIALS-LISTEND'.
APPEND HEAD.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = HEAD[]
I_LOGO =
I_END_OF_LIST_GRID =
ENDFORM.
<b>FORM STATUS USING MYMENU.
SET PF-STATUS 'MENU' excluding MYMENU.
ENDFORM.
FORM UCOMM USING CODE STEXT.
CASE CODE.
WHEN 'ABC'.
WRITE:/ 'YOU HAVE CLICKED ON ABC'.
WHEN 'XYZ'.
WRITE:/ 'YOU HAVE CLICKED ON XYZ'.
ENDCASE.
ENDFORM.</b>
rgds,
bharat. -
Hi all,
I have below output in alv report.
matnr 101_102 121_122 123_124
10000 23 34 45
10001 34 34 456
if i m clicking on 23 in combination of 121_122 and 10000 then i want to see detail for 121_122 and if i m clicking on 34 combination of 101_102 then i want to see detail according to it.
plz help me. its urgent.
thanks in advance.Check the below report and do compare and modify the report as per your req.
REPORT ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650
MESSAGE-ID ZZ_9838 .
TYPE-POOLS: SLIS.
*type declaration for values from ekko
TYPES: BEGIN OF I_EKKO,
EBELN LIKE EKKO-EBELN,
AEDAT LIKE EKKO-AEDAT,
BUKRS LIKE EKKO-BUKRS,
BSART LIKE EKKO-BSART,
LIFNR LIKE EKKO-LIFNR,
END OF I_EKKO.
DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
WA_EKKO TYPE I_EKKO.
*type declaration for values from ekpo
TYPES: BEGIN OF I_EKPO,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
END OF I_EKPO.
DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
WA_EKPO TYPE I_EKPO .
*variable for Report ID
DATA: V_REPID LIKE SY-REPID .
*declaration for fieldcatalog
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
declaration for events table where user comand or set PF status will
be defined
DATA: V_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT.
declartion for layout
DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
declaration for variant(type of display we want)
DATA: I_VARIANT TYPE DISVARIANT,
I_VARIANT1 TYPE DISVARIANT,
I_SAVE(1) TYPE C.
*PARAMETERS : p_var TYPE disvariant-variant.
*Title displayed when the alv list is displayed
DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
INITIALIZATION.
V_REPID = SY-REPID.
PERFORM BUILD_FIELDCATLOG.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_REPORT.
*& Form BUILD_FIELDCATLOG
Fieldcatalog has all the field details from ekko
FORM BUILD_FIELDCATLOG.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'AEDAT'.
WA_FIELDCAT-SELTEXT_M = 'DATE.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'LIFNR'.
WA_FIELDCAT-NO_OUT = 'X'.
WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG
*& Form EVENT_CALL
we get all events - TOP OF PAGE or USER COMMAND in table v_events
FORM EVENT_CALL.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "EVENT_CALL
*& Form POPULATE_EVENT
Events populated for TOP OF PAGE & USER COMAND
FORM POPULATE_EVENT.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
ENDIF.
ENDFORM. "POPULATE_EVENT
*& Form data_retrieval
retreiving values from the database table ekko
FORM DATA_RETRIEVAL.
SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
ENDFORM. "data_retrieval
*& Form bUild_listheader
text
-->I_LISTHEADEtext
FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA HLINE TYPE SLIS_LISTHEADER.
HLINE-INFO = 'this is my first alv pgm'.
HLINE-TYP = 'H'.
ENDFORM. "build_listheader
*& Form display_alv_report
text
FORM DISPLAY_ALV_REPORT.
V_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_GRID_TITLE = I_TITLE_EKKO
I_GRID_SETTINGS =
IS_LAYOUT = ALV_LAYOUT
IT_FIELDCAT = I_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
i_default = 'ZLAY1'
I_SAVE = 'A'
is_variant = i_variant
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKKO
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 TOP_OF_PAGE
text
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
i_logo =
I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*& Form USER_COMMAND
text
-->R_UCOMM text
-->, text
-->RS_SLEFIELDtext
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
PERFORM BUILD_FIELDCATLOG_EKPO.
PERFORM EVENT_CALL_EKPO.
PERFORM POPULATE_EVENT_EKPO.
PERFORM DATA_RETRIEVAL_EKPO.
PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_EKPO.
ENDCASE.
ENDFORM. "user_command
*& Form BUILD_FIELDCATLOG_EKPO
text
FORM BUILD_FIELDCATLOG_EKPO.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELP'.
WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MENGE'.
WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-SELTEXT_M = 'UOM'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'NETPR'.
WA_FIELDCAT-SELTEXT_M = 'PRICE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG_EKPO
*& Form event_call_ekpo
we get all events - TOP OF PAGE or USER COMMAND in table v_events
FORM EVENT_CALL_EKPO.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "event_call_ekpo
*& Form POPULATE_EVENT
Events populated for TOP OF PAGE & USER COMAND
FORM POPULATE_EVENT_EKPO.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
ENDFORM. "POPULATE_EVENT
*& Form TOP_OF_PAGE
text
FORM F_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
i_logo =
I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE
*& Form USER_COMMAND
text
-->R_UCOMM text
-->, text
-->RS_SLEFIELDtext
*retreiving values from the database table ekko
FORM DATA_RETRIEVAL_EKPO.
SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
ENDFORM.
FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA: HLINE1 TYPE SLIS_LISTHEADER.
HLINE1-TYP = 'H'.
HLINE1-INFO = 'CHECKING PGM'.
ENDFORM.
FORM DISPLAY_ALV_EKPO.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'F_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 = I_TITLE_EKPO
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = I_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT =
I_SAVE = 'A'
IS_VARIANT =
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKPO
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.
Thanks
Seshu -
Hi all,
I have a problem in alv report ,there are 5 fields to display and in 6th position i have to display an icon as red or green light according to data. How can i do that ? please help me .
Thanks and regards
GoutamHi goutam,
1. Simple
2. we have to use the layout for this purpose.
3. like this :
alvly-lights_fieldname = 'LT'.
alvly-lights_tabname = 'ITAB'.
4. Just copy paste to get a taste of it.
(important code has been highlighted)
REPORT abc.
TYPE-POOLS : slis.
DATA : alvly TYPE slis_layout_alv.
DATA : alvfc TYPE slis_t_fieldcat_alv.
DATA : BEGIN OF itab OCCURS 0,
<b> lt TYPE i,</b>
matnr LIKE mara-matnr,
END OF itab.
END-OF-SELECTION.
<b> itab-lt = 1.
APPEND itab.
itab-lt = 2.
APPEND itab.
itab-lt = 3.
APPEND itab.
itab-lt = 1.
APPEND itab.
itab-lt = 3.
APPEND itab.
itab-lt = 3.
APPEND itab.
itab-lt = 3.
APPEND itab.</b>
<b> alvly-lights_fieldname = 'LT'.
alvly-lights_tabname = 'ITAB'.</b>
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'ITAB'
i_inclname = sy-repid
CHANGING
ct_fieldcat = alvfc.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = alvfc
is_layout = alvly
i_save = 'A'
TABLES
t_outtab = itab.
regards,
amit m. -
Hi all Good Morning.
In ALV report am inserted my own icons. But the problem is at output screen am getting only those icons which i created, remaining are not displaying in standard tool bar .
Please tell me how to solve this. I want to display all default icons with my own created icons in standard tool bar .
Regards,
Prajwal K.
Edited by: prajwal k on Jan 24, 2008 4:39 AMHi Prajwal, this code will solve ur problem.
go to SE41.
Give SAPLKKBL as program name and STANDARD_FULLSCREEN as status....
now click on Copy Status and in that give ur program and status name into To.....
now in REUSE_ALV_GRID_DISPLAY
FORM display_list.
g_f_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_f_repid
i_callback_user_command = 'USER_COMMAND'
i_callback_pf_status_set = 'SET_STAT'
it_fieldcat = g_t_fieldcat[]
it_events = g_t_events[]
TABLES
t_outtab = g_t_itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " display_list
FORM set_stat USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZSTAT' EXCLUDING rt_extab.
ENDFORM. "set_stat
here my status name is ZSTAT which i gave in SE41...
and in user_command form...
FORM user_command USING u_comm LIKE sy-ucomm selfield TYPE slis_selfield.
CASE u_comm.
WHEN 'DET'.
........ur logic.........
ENDCASE.
ENDFORM. "user_command
kindly reward if found helpful.
cheers,
Hema. -
Information button in ALV report
Information button in ALV report is not working. any suggestion
I have copied standard tool bar from standard program.During debugging, I have found that function code is defferent. Then I changed function code according to that.
Maybe you are looking for
-
Is there a way to run a family network with multiple Apple ID's?
My wife and I (married one week) have both individually and together been using Apple products for awhile. I have been so pleased that I decided that in our house I was going to slowly build an Apple network. Our base station is an Airport Extreme, I
-
Route Pattern/Filter Issues
Hello - I had a question that I was hoping someone could help me with. I recently had an issue on CallManager 4.1.3sr6a. I have 10 sites, each using their own set of 6 9.@ route patterns for outgoing calls. Although the patterns are distinct, they al
-
Motion 4.0.3 Audio track crashes
I'm animating to a narration track, and therefore have to split/move the audio every now and again. If I touch the audio track Motion crashes. I've browsed the Motion posts, and saw many posts over the last four years describing a similar problem, bu
-
Enhancements of IT0077, IT0001 and IT0032
Hi Friends, I am very new to SAP HR module. I have few requirements on ESS. Can you please check the following descriptions. 1) In the part of enhancement of IT0077, All employees, existing and new, will be given the option to go on-line via Employee
-
Dreamweaver "saving" error, Access was denied
I'm Running Windows 7. I just loaded all my client websites back on my computer. everythings was working fine as of last night. I turned on my computer to continue work on a site, and all of sudden I'm getting this error when I try to SAVE the wor