2007 Nov 26 4:53 AM
Hi all,
Can any one give me sample program for interactive ALV report both list and grid.
Thanks
Amar
Hi all,
Can any one give me sample program for interactive ALV report both list and grid.
Thanks
Amar
2007 Nov 26 4:56 AM
Hi,
Reprots
http://www.sapgenie.com/abap/reports.htm
http://www.allsaplinks.com/material.html
http://www.sapdevelopment.co.uk/reporting/reportinghome.htm
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
Check this for basic concepts of OOPS
Tabstrip
Editable ALV
Tree
http://www.sapdevelopment.co.uk/reporting/alv/alvtree/alvtree_usrint.htm
General Tutorial for OOPS
http://www.sapdevelopment.co.uk/reporting/alvhome.htm
http://www.sap-img.com/abap/what-is-alv-programming.htm
http://www.sap-img.com/abap-function.htm
http://www.geocities.com/mpioud/Abap_programs.html
http://www.sapdevelopment.co.uk/reporting/alv/alvtree%5Calvtree_basic.htm
http://esnips.com/doc/ad20dca9-6182-4903-8d8f-96a66dc8590c/ALV.pdf
2007 Nov 26 4:56 AM
See the example code..........
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = i_repid
i_callback_user_command = 'USER_COMMAND_PERNR'
it_fieldcat = header
is_layout = gt_layout
i_callback_top_of_page = 'TOP-OF-PAGE1'
i_grid_title = text-t35
it_sort = gt_sort[]
i_default = 'X'
i_save = 'U'
is_variant = gt_variant
it_events = gt_events
TABLES
t_outtab = ITAB.
clear itab.
----
FORM USER_COMMAND_PERNR
----
FORM USER_COMMAND_PERNR USING u_ucomm LIKE sy-ucomm
us_selfield TYPE slis_selfield."#EC CALLED
CASE u_ucomm.
when '&IC1'.
if us_selfield-fieldname = 'PERNR'.
read table ITAB index us_selfield-tabindex.
set parameter id 'PER' field ITAB-PERNR.
set parameter id 'PER' field us_selfield-value.
call transaction 'XYZ' and skip first screen.
endif.
ENDCASE.
ENDFORM. " USER_COMMAND_PERNR
2007 Nov 26 4:56 AM
HI
INTERACTIVE ALV
REPORT Z50651_ALV_INTERACTIVE MESSAGE-ID ZMSG_50651
LINE-SIZE 100
LINE-COUNT 60
NO STANDARD PAGE HEADING.
******************TABLES DECLARATION*****************
TABLES : VBAP,MARA.
*****************TYPE POOLS**************************
TYPE-POOLS : SLIS.
****************INTERNAL TABLES**********************
DATA : BEGIN OF IT_VBAP OCCURS 0,
VBELN LIKE VBAP-VBELN, "SALES DOCUMENT
POSNR LIKE VBAP-POSNR, "SALES DOCUMENT ITEM
MATNR LIKE VBAP-MATNR, "MATERIAL NUMBER
END OF IT_VBAP.
****************TEMPORARY VARIABLES******************
DATA : V_VBELN LIKE VBAP-VBELN."SALES DOCUMENT
DATA : V_MTART LIKE MARA-MTART. "MATERIAL TYPE
*****************FIELD CATALOG***********************
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
****************LAYOUT*******************************
DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
***************VARIANT*******************************
DATA : G_VARIANT LIKE DISVARIANT.
****************SAVE*********************************
DATA : G_SAVE(1) TYPE C.
*****************EVENTS******************************
DATA : XS_EVENTS TYPE SLIS_ALV_EVENT,
G_EVENTS TYPE SLIS_T_EVENT.
******************PF STATUS**************************
DATA : PF_STATUS TYPE SLIS_FORMNAME VALUE 'SET_PF_STATUS'.
******************USER COMMAND************************
DATA : USER_COMMAND TYPE SLIS_FORMNAME VALUE 'SET_USER_COMMAND',
R_UCOMM LIKE SY-UCOMM.
****************SELECTION SCREEN************************
SELECT-OPTIONS : S_VBELN FOR VBAP-VBELN.
***************AT SELECTION SCREEN*********************
AT SELECTION-SCREEN.
PERFORM VALIDATE.
**************START-OF-SELECTION**************************
START-OF-SELECTION.
PERFORM GET_DETAILS.
PERFORM FIELDCAT.
PERFORM LAYOUT.
PERFORM VARIANT.
PERFORM SAVE.
PERFORM EVENTS.
PERFORM ALV_DISPLAY.
*********************FORMS*******************************************
&----
*& Form validate
&----
text
----
--> p1 text
<-- p2 text
----
FORM VALIDATE .
SELECT SINGLE VBELN
FROM VBAP
INTO V_VBELN
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'enter valid vbeln'.
ENDIF.
ENDFORM. " validate
&----
*& Form get_details
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DETAILS .
SELECT VBELN
POSNR
MATNR
FROM VBAP
INTO TABLE IT_VBAP
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'no details found'.
ENDIF.
ENDFORM. " get_details
&----
*& Form fieldcat
&----
text
----
--> p1 text
<-- p2 text
----
FORM FIELDCAT .
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-FIELDNAME = 'VBELN'.
WA_FIELDCAT-OUTPUTLEN = 10.
WA_FIELDCAT-SELTEXT_L = 'SALES DOC'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-FIELDNAME = 'POSNR'.
WA_FIELDCAT-OUTPUTLEN = 6.
WA_FIELDCAT-SELTEXT_L = 'ITEM'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_VBAP'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-OUTPUTLEN = 18.
WA_FIELDCAT-SELTEXT_L = 'MATERIAL NO'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. " fieldcat
&----
*& Form LAYOUT
&----
text
----
--> p1 text
<-- p2 text
----
FORM LAYOUT .
WA_LAYOUT-ZEBRA = 'X'.
ENDFORM. " LAYOUT
&----
*& Form VARIANT
&----
text
----
--> p1 text
<-- p2 text
----
FORM VARIANT .
CLEAR G_VARIANT.
G_VARIANT-REPORT = SY-REPID.
ENDFORM. " VARIANT
&----
*& Form SAVE
&----
text
----
--> p1 text
<-- p2 text
----
FORM SAVE .
CLEAR G_SAVE.
G_SAVE = 'A'.
ENDFORM. " SAVE
&----
*& Form EVENTS
&----
text
----
--> p1 text
<-- p2 text
----
FORM EVENTS .
CLEAR XS_EVENTS.
XS_EVENTS-NAME = SLIS_EV_TOP_OF_PAGE.
XS_EVENTS-FORM = 'TOP_OF_PAGE'.
APPEND XS_EVENTS TO G_EVENTS.
ENDFORM. " EVENTS
&----
*& Form TOP_OF_PAGE
&----
text
----
FORM TOP_OF_PAGE.
WRITE 😕 ' INTELLI GROUP'.
ENDFORM. "TOP_OF_PAGE
&----
*& Form ALV_DISPLAY
&----
text
----
--> p1 text
<-- p2 text
----
FORM ALV_DISPLAY .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = PF_STATUS
I_CALLBACK_USER_COMMAND = USER_COMMAND
I_STRUCTURE_NAME =
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = G_SAVE
IS_VARIANT = G_VARIANT
IT_EVENTS = G_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_VBAP
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. " ALV_DISPLAY
&----
*& Form SET_PF_STATUS
&----
text
----
FORM SET_PF_STATUS USING EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'Z50651_PFSTATUS' EXCLUDING EXTAB.
ENDFORM. "SET_PF_STATUS
&----
*& Form SET_USER_COMMAND
&----
text
----
FORM SET_USER_COMMAND USING R_UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN 'DC'.
READ TABLE IT_VBAP INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SELECT SINGLE MTART
FROM MARA
INTO V_MTART
WHERE MATNR = IT_VBAP-MATNR.
IF SY-SUBRC <> 0.
MESSAGE E000 WITH 'NO MATERIAL DESCRIPTION FOR SELECTED MATERIAL NO'.
ELSE.
WRITE 😕 'MATERIAL NO :',IT_VBAP-MATNR.
WRITE 😕 'MATERIAL TYPE :' , V_MTART.
ENDIF.
ENDIF.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'CLOSE'.
CALL TRANSACTION 'SE38'.
ENDCASE.
ENDFORM. "SET_USER_COMMAND
2007 Nov 26 4:56 AM
Hi,
Have a look,
Regards,
Pritha.
<i>Reward if helpful.</i>
report zsales_order.
type-pools: slis.
*DATA DECLARATION.
types: begin of i_vbak,
vbeln type vbeln_va,
augru type augru,
erdat type erdat,
end of i_vbak.
types: begin of i_vbap,
vbeln type vbeln_va,
augru type augru,
posnr type posnr_va,
matnr type matnr,
zmeng type dzmeng,
end of i_vbap.
types: begin of i_makt,
matnr type matnr,
maktx type maktx,
end of i_makt.
types: begin of i_lips,
posnr type posnr_vl,
matnr type matnr,
lfimg type lfimg,
end of i_lips.
types: begin of i_reason,
spras type spras,
augru type augru,
bezei type bezei40,
end of i_reason.
types: begin of i_vbpa,
vbeln type vbeln,
parvw type parvw,
kunnr type kunnr,
end of i_vbpa.
types: begin of i_kna1,
kunnr type kunnr,
name1 type name1_gp,
end of i_kna1.
types: begin of i_final,
vbeln type vbeln_va,
posnr type posnr_va,
matnr type matnr,
zmeng type dzmeng,
maktx type maktx,
lfimg type lfimg,
spras type spras,
augru type augru,
bezei type bezei40,
parvw type parvw,
kunnr type kunnr,
name1 type name1_gp,
end of i_final.
*INTERNAL TABLES
data: it_vbak type standard table of i_vbak.
data: it_vbap type standard table of i_vbap.
data: it_makt type standard table of i_makt.
data: it_lips type standard table of i_lips.
data: it_vbpa type standard table of i_vbpa.
data: it_kna1 type standard table of i_kna1.
data: it_final type standard table of i_final.
data: it_reason type standard table of i_reason.
data : v_flag.
*WORK AREA
data: wa_vbak type i_vbak.
data: wa_vbap type i_vbap.
data: wa_makt type i_makt.
data: wa_lips type i_lips.
data: wa_vbpa type i_vbpa.
data: wa_kna1 type i_kna1.
data: wa_final type i_final.
data: wa_reason type i_reason.
*DATA DECLARATION.
data: v_progname type sy-repid.
data: v_vbeln type vbak-vbeln.
data: v_gridtitle type lvc_title.
*PARAMETERS: D_VARI LIKE DISVARIANT-VARIANT.
data: i_variant like disvariant.
data: p_vari like disvariant-variant.
*DATA DECLARATION FOR CATALOGS LAYOUT SORT EVENTCATALOG TOPOFPAGE.
data: i_fieldcat type slis_t_fieldcat_alv.
data: i_layout type slis_layout_alv.
data: i_sortinfo type slis_t_sortinfo_alv.
data: i_listheader type slis_t_listheader.
data: i_eventcat type slis_t_event.
*INITIALIZATION - First point of execution of program
To initialize Any variables that are to be
used in the program, even before selection screen
appears.
initialization.
v_progname = sy-repid.
v_flag = space.
perform z_default_variant.
*SELECTION SCREEN
selection-screen begin of block blk1 with frame title text-002.
select-options: s_vbeln for v_vbeln.
selection-screen end of block blk1.
*Variable for ALV Variant
selection-screen begin of block b_var with frame title text-020.
parameters: d_vari like disvariant-variant.
selection-screen end of block b_var.
*AT SLECTION-SCREEN.
at selection-screen.
perform z_validations.
*AT SELECTION SCREEN.
at selection-screen on d_vari.
CHECK FOR THE EXISTENCE OF THE VARIANT SELECTED
perform zf_check_var_exist.
at selection-screen on value-request for d_vari.
PROVIDE THE F4-HELP.
perform zf_variant_f4.
*START OF SELECTION.
start-of-selection.
perform z_select.
perform check_validation_flag.
perform z_fieldcat using i_fieldcat.
perform z_layout.
perform z_sortinfo using i_sortinfo.
perform z_eventcat using i_eventcat.
perform z_gridtitle.
perform z_listheader using i_listheader.
perform z_display.
&----
*& Form Z_VALIDATIONS
&----
text
----
--> p1 text
<-- p2 text
----
form z_validations .
select vbeln into v_vbeln
up to 1 rows
from vbak
where vbeln in s_vbeln.
endselect.
if sy-subrc <> 0.
message i002(sy) with 'No Records'.
v_flag = 'X'.
endif.
endform. " Z_VALIDATIONS
&----
*& Form Z_FIELDCAT
&----
text
----
-->P_I_FIELDCAT text
----
form z_fieldcat using p_i_fieldcat type slis_t_fieldcat_alv.
data: i_fieldcat type slis_fieldcat_alv.
*VBAK-VELN
i_fieldcat-col_pos = '1'. " POSITION OF THE COLUMN.
i_fieldcat-fieldname = 'VBELN'. " FIELD FOR WHICH CATALOG ID FILLED.
i_fieldcat-tabname = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
i_fieldcat-key = 'X'. " SO THAT THIS FIELD IS NOT SCROLLABLE AND HIDDABLE.
i_fieldcat-just = 'C'. " FOR JUSTIFICATION.
i_fieldcat-lzero = 'X'. " OUTPUT WITH LEADING ZEROS.
i_fieldcat-seltext_l = 'SALES ORDER'. " LONG TEXT FOR HEADER.
i_fieldcat-outputlen = 15. " SET THE OUTPUT LENGTH.
i_fieldcat-ref_tabname = 'VBAK'. " FOR F1 & F4 HELP AS REFERNCED TO THE DDIC TABLE.
append i_fieldcat to p_i_fieldcat.
*VBAP-SPRAS
i_fieldcat-col_pos = '2'. " POSITION OF THE COLUMN.
i_fieldcat-fieldname = 'SPRAS'. " FIELD FOR WHICH CATALOG ID FILLED.
i_fieldcat-tabname = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
i_fieldcat-lzero = 'X'. " OUTPUT WITH LEADING ZEROS.
i_fieldcat-seltext_l = 'LANGUAGE'. " LONG TEXT FOR HEADER.
i_fieldcat-outputlen = 5. " SET THE OUTPUT LENGTH.
i_fieldcat-ref_tabname = 'TVAUT'. " FOR F1 & F4 HELP AS REFERNCED TO TABLE.
append i_fieldcat to p_i_fieldcat.
*VBAP-AUGRU
i_fieldcat-col_pos = '3'. " POSITION OF THE COLUMN.
i_fieldcat-fieldname = 'AUGRU'. " FIELD FOR WHICH CATALOG ID FILLED.
i_fieldcat-tabname = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
i_fieldcat-lzero = 'X'. " OUTPUT WITH LEADING ZEROS.
i_fieldcat-seltext_l = 'REASON'. " LONG TEXT FOR HEADER.
i_fieldcat-outputlen = 5. " SET THE OUTPUT LENGTH.
i_fieldcat-ref_tabname = 'VBAK'. " FOR F1 & F4 HELP AS REFERNCED TO TABLE.
append i_fieldcat to p_i_fieldcat.
*VBAP-bezei
i_fieldcat-col_pos = '4'. " POSITION OF THE COLUMN.
i_fieldcat-fieldname = 'BEZEI'. " FIELD FOR WHICH CATALOG ID FILLED.
i_fieldcat-tabname = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
i_fieldcat-lzero = 'X'. " OUTPUT WITH LEADING ZEROS.
i_fieldcat-seltext_l = 'DESCRIPTION'. " LONG TEXT FOR HEADER.
i_fieldcat-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fieldcat-ref_tabname = 'TVAUT'. " FOR F1 & F4 HELP AS REFERNCED TO TABLE.
append i_fieldcat to p_i_fieldcat.
*VBAP-POSNR
i_fieldcat-col_pos = '5'. " POSITION OF THE COLUMN.
i_fieldcat-fieldname = 'POSNR'. " FIELD FOR WHICH CATALOG ID FILLED.
i_fieldcat-tabname = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
i_fieldcat-lzero = 'X'. " OUTPUT WITH LEADING ZEROS.
i_fieldcat-seltext_l = 'ITEM'. " LONG TEXT FOR HEADER.
i_fieldcat-outputlen = 8. " SET THE OUTPUT LENGTH.
i_fieldcat-ref_tabname = 'VBAP'. " FOR F1 & F4 HELP AS REFERNCED TO TABLE.
append i_fieldcat to p_i_fieldcat.
*VBAP-MATNR.
i_fieldcat-col_pos = '6'. " POSITION OF THE COLUMN.
i_fieldcat-fieldname = 'MATNR'. " FIELD FOR WHICH CATALOG ID FILLED.
i_fieldcat-tabname = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
i_fieldcat-lzero = 'X'. " OUTPUT WITH LEADING ZEROS.
i_fieldcat-seltext_l = 'MATERIAL'. " LONG TEXT FOR HEADER.
i_fieldcat-outputlen = 10. " SET THE OUTPUT LENGTH.
i_fieldcat-ref_tabname = 'VBAP'. " FOR F1 & F4 HELP AS REFERNCED TO TABLE.
append i_fieldcat to p_i_fieldcat.
*VBAP-ZMENG
i_fieldcat-col_pos = '7'. " POSITION OF THE COLUMN.
i_fieldcat-fieldname = 'ZMENG'. " FIELD FOR WHICH CATALOG ID FILLED.
i_fieldcat-tabname = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
i_fieldcat-lzero = 'X'. " OUTPUT WITH LEADING ZEROS.
i_fieldcat-seltext_l = 'QUANT'. " LONG TEXT FOR HEADER.
i_fieldcat-outputlen = 10. " SET THE OUTPUT LENGTH.
i_fieldcat-ref_tabname = 'VBAP'. " FOR F1 & F4 HELP AS REFERNCED TO TABLE.
append i_fieldcat to p_i_fieldcat.
*MAKT-MAKTX
i_fieldcat-col_pos = '8'. " POSITION OF THE COLUMN.
i_fieldcat-fieldname = 'MAKTX'. " FIELD FOR WHICH CATALOG ID FILLED.
i_fieldcat-tabname = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
i_fieldcat-lzero = 'X'. " OUTPUT WITH LEADING ZEROS.
i_fieldcat-seltext_l = 'DESCRIPTION'. " LONG TEXT FOR HEADER.
i_fieldcat-outputlen = 20. " SET THE OUTPUT LENGTH.
i_fieldcat-ref_tabname = 'MAKT'. " FOR F1 & F4 HELP AS REFERNCED TO TABLE.
append i_fieldcat to p_i_fieldcat.
*LIPS-VBELN
i_fieldcat-col_pos = '9'. " POSITION OF THE COLUMN.
i_fieldcat-fieldname = 'VBELN'. " FIELD FOR WHICH CATALOG ID FILLED.
i_fieldcat-tabname = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
i_fieldcat-lzero = 'X'. " OUTPUT WITH LEADING ZEROS.
i_fieldcat-seltext_l = 'DELIVERY'. " LONG TEXT FOR HEADER.
i_fieldcat-outputlen = 15. " SET THE OUTPUT LENGTH.
i_fieldcat-ref_tabname = 'LIPS'. " FOR F1 & F4 HELP AS REFERNCED TO TABLE.
append i_fieldcat to p_i_fieldcat.
*LIPS-LFIMG
i_fieldcat-col_pos = '10'. " POSITION OF THE COLUMN.
i_fieldcat-fieldname = 'LFIMG'. " FIELD FOR WHICH CATALOG ID FILLED.
i_fieldcat-tabname = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
i_fieldcat-lzero = 'X'. " OUTPUT WITH LEADING ZEROS.
i_fieldcat-do_sum = 'X'.
i_fieldcat-seltext_l = 'LFIMG'. " LONG TEXT FOR HEADER.
i_fieldcat-outputlen = 18. " SET THE OUTPUT LENGTH.
i_fieldcat-ref_tabname = 'LIPS'. " FOR F1 & F4 HELP AS REFERNCED TO TABLE.
append i_fieldcat to p_i_fieldcat.
*parvw
i_fieldcat-col_pos = '11'. " POSITION OF THE COLUMN.
i_fieldcat-fieldname = 'PARVW'. " FIELD FOR WHICH CATALOG ID FILLED.
i_fieldcat-tabname = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
i_fieldcat-lzero = 'X'. " OUTPUT WITH LEADING ZEROS.
i_fieldcat-seltext_l = 'PARTNER FUN'. " LONG TEXT FOR HEADER.
i_fieldcat-outputlen = 18. " SET THE OUTPUT LENGTH.
i_fieldcat-ref_tabname = 'VBPA'. " FOR F1 & F4 HELP AS REFERNCED TO TABLE.
append i_fieldcat to p_i_fieldcat.
*KUNNR
i_fieldcat-col_pos = '12'. " POSITION OF THE COLUMN.
i_fieldcat-fieldname = 'KUNNR'. " FIELD FOR WHICH CATALOG ID FILLED.
i_fieldcat-tabname = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
i_fieldcat-lzero = 'X'. " OUTPUT WITH LEADING ZEROS.
i_fieldcat-seltext_l = 'SHIP'. " LONG TEXT FOR HEADER.
i_fieldcat-outputlen = 18. " SET THE OUTPUT LENGTH.
i_fieldcat-ref_tabname = 'VBPA'. " FOR F1 & F4 HELP AS REFERNCED TO TABLE.
append i_fieldcat to p_i_fieldcat.
*NAME1
i_fieldcat-col_pos = '13'. " POSITION OF THE COLUMN.
i_fieldcat-fieldname = 'NAME1'. " FIELD FOR WHICH CATALOG ID FILLED.
i_fieldcat-tabname = 'IT_FINAL'. " INTERNAL TABLE TO WHICH THE FIELD BELONGS TO.
i_fieldcat-lzero = 'X'. " OUTPUT WITH LEADING ZEROS.
i_fieldcat-seltext_l = 'NAME'. " LONG TEXT FOR HEADER.
i_fieldcat-outputlen = 18. " SET THE OUTPUT LENGTH.
i_fieldcat-ref_tabname = 'KNA1'. " FOR F1 & F4 HELP AS REFERNCED TO TABLE.
append i_fieldcat to p_i_fieldcat.
endform. " Z_FIELDCAT
&----
*& Form Z_SELECT
&----
text
----
--> p1 text
<-- p2 text
----
form z_select .
select vbeln
augru erdat into corresponding fields of table it_vbak
from vbak
where vbeln in s_vbeln.
loop at it_vbak into wa_vbak.
wa_vbak-erdat = '99991231'.
modify it_vbak from wa_vbak transporting erdat.
endloop.
*
select * from vbak into corresponding fields of table it_vbak
for all entries in it_vbak
where erdat = it_vbak-erdat.
if sy-subrc = 0.
select vbeln
posnr
matnr
zmeng into corresponding fields of table it_vbap
from vbap
for all entries in it_vbak
where vbeln = it_vbak-vbeln.
if sy-subrc = 0.
select spras
augru
bezei into corresponding fields of table it_reason
from tvaut
for all entries in it_vbak
where augru = it_vbak-augru.
if sy-subrc = 0.
select vbeln
parvw
kunnr into corresponding fields of table it_vbpa
from vbpa
for all entries in it_vbak
where vbeln = it_vbak-vbeln.
if sy-subrc = 0.
select kunnr
name1 into corresponding fields of table it_kna1
from kna1
for all entries in it_vbpa
where kunnr = it_vbpa-kunnr.
if sy-subrc = 0.
select posnr
matnr
lfimg into corresponding fields of table it_lips
from lips
for all entries in it_vbap
where posnr = it_vbap-posnr.
if sy-subrc = 0.
select matnr
maktx into corresponding fields of table it_makt
from makt
for all entries in it_vbap
where matnr = it_vbap-matnr.
endif.
endif.
endif.
endif.
endif.
else.
message i002(sy) with 'No Data found'.
leave list-processing.
endif.
if sy-subrc = 0.
loop at it_vbap into wa_vbap.
read table it_vbak into wa_vbak with key vbeln = wa_vbap-vbeln binary search.
if sy-subrc = 0.
*MOVE DATA INTO IT_FINAL.
move: wa_vbak-vbeln to wa_final-vbeln,
wa_vbak-augru to wa_final-augru,
wa_vbap-posnr to wa_final-posnr,
wa_vbap-matnr to wa_final-matnr,
wa_vbap-zmeng to wa_final-zmeng.
endif.
read table it_lips into wa_lips with key posnr = wa_final-posnr binary search.
if sy-subrc = 0.
move: wa_lips-lfimg to wa_final-lfimg.
endif.
read table it_reason into wa_reason with key augru = wa_final-augru binary search.
if sy-subrc = 0.
move: wa_reason-spras to wa_final-spras,
wa_reason-bezei to wa_final-bezei.
endif.
read table it_makt into wa_makt with key matnr = wa_final-matnr binary search.
if sy-subrc = 0.
move: wa_makt-maktx to wa_final-maktx.
endif.
read table it_vbpa into wa_vbpa with key vbeln = wa_final-vbeln binary search.
if sy-subrc = 0.
move: wa_vbpa-parvw to wa_final-parvw,
wa_vbpa-kunnr to wa_final-kunnr.
endif.
read table it_kna1 into wa_kna1 with key kunnr = wa_final-kunnr binary search.
if sy-subrc = 0.
move: wa_kna1-name1 to wa_final-name1.
endif.
append wa_final to it_final.
clear wa_final.
endloop.
endif.
endform. " Z_SELECT
&----
*& Form Z_LAYOUT
&----
text
----
--> p1 text
<-- p2 text
----
form z_layout .
i_layout-zebra = 'X'.
i_layout-totals_text = 'Total'(a00).
i_layout-subtotals_text = 'SubTotal'(a01).
i_layout-box_tabname = 'IT_FINAL'.
endform. " Z_LAYOUT
&----
*& Form Z_SORTINFO
&----
text
----
-->P_I_SORTINFO text
----
form z_sortinfo using p_i_sortinfo type slis_t_sortinfo_alv.
data: i_sortinfo type slis_sortinfo_alv.
clear i_sortinfo.
i_sortinfo-spos = '1'.
i_sortinfo-fieldname = 'VBELN'.
i_sortinfo-tabname = 'IT_FINAL'.
i_sortinfo-up = 'X'.
i_sortinfo-group = 'UL'. " I.E UNDERLINE AFTER EVERY GROUP
i_sortinfo-subtot = 'X'.
append i_sortinfo to p_i_sortinfo.
endform. " Z_SORTINFO
&----
*& Form Z_EVENTCAT
&----
text
----
-->P_I_EVENTCAT text
----
form z_eventcat using p_i_eventcat type slis_t_event.
data: i_event type slis_alv_event.
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 0
importing
et_events = p_i_eventcat
exceptions
list_type_wrong = 1
others = 2.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
clear i_event.
read table p_i_eventcat with key name = slis_ev_top_of_page into
i_event.
if sy-subrc = 0.
move 'TOP_OF_PAGE' to i_event-form.
append i_event to p_i_eventcat.
endif.
read table p_i_eventcat with key name = slis_ev_pf_status_set into i_event.
if sy-subrc = 0.
move 'SET_PF_STATUS' to i_event-form.
append i_event to p_i_eventcat.
endif.
clear i_event.
read table p_i_eventcat into i_event with key name = slis_ev_user_command .
if sy-subrc = 0.
move 'USER_COMMAND' to i_event-form.
append i_event to p_i_eventcat.
endif.
endform. " Z_EVENTCAT
&----
*& Form Z_DISPLAY
&----
text
----
--> p1 text
<-- p2 text
----
form z_display .
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = v_progname
i_callback_pf_status_set = 'SET_PF_STATUS'
i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'TOP_OF_PAGE'
i_grid_title = v_gridtitle
i_save = 'A'
is_layout = i_layout
it_fieldcat = i_fieldcat[]
it_sort = i_sortinfo
it_events = i_eventcat
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
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. " Z_DISPLAY
&----
*& Form Z_GRIDTITLE
&----
text
----
--> p1 text
<-- p2 text
----
form z_gridtitle .
v_gridtitle = 'ALV FOR SALES ORDER DISPLAY'.
endform. " Z_GRIDTITLE
*TOP OF PAGE.
form top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_listheader.
endform. "TOP_OF_PAGE
*MENU SETTINGS.
form set_pf_status using rt_extab type slis_t_extab.
set pf-status 'ALV_MENU'.
endform. "SET_PF_STATUS
*USER-COMMAND
form user_command using p_ucomm type sy-ucomm
rs_selfield type slis_selfield.
data : vbeln type vbeln_va.
case p_ucomm.
when 'BACK'.
leave program.
when '&IC1'.
clear : vbeln.
vbeln = rs_selfield-value.
set parameter id: 'AUN' field vbeln.
call transaction 'VA03' and skip first screen.
endcase.
endform. " USER_COMMAND
&----
*& Form Z_LISTHEADER
&----
text
----
-->P_I_LISTHEADER text
----
form z_listheader using p_i_listheader type slis_t_listheader.
data: l_listheader type slis_listheader.
refresh p_i_listheader.
clear l_listheader.
l_listheader-typ = 'H'.
l_listheader-info = text-001.
append l_listheader to p_i_listheader.
clear l_listheader.
l_listheader-typ = 'H'.
l_listheader-info = text-002.
append l_listheader to p_i_listheader.
endform. " Z_LISTHEADER
&----
*& Form check_validation_flag
&----
text
----
--> p1 text
<-- p2 text
----
form check_validation_flag .
if not v_flag is initial.
leave list-processing.
endif.
endform. " check_validation_flag
&----
*& Form Z_DEFAULT_VARIANT
&----
text
----
--> p1 text
<-- p2 text
----
form z_default_variant .
i_variant-report = v_progname.
call function 'REUSE_ALV_VARIANT_DEFAULT_GET'
exporting
i_save = 'A'
changing
cs_variant = i_variant
exceptions
wrong_input = 1
not_found = 2
program_error = 3
others = 4.
if sy-subrc = 0.
p_vari = i_variant-variant.
D_VARI = P_VARI.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform. " Z_DEFAULT_VARIANT
&----
*& Form ZF_CHECK_VAR_EXIST
&----
text
----
--> p1 text
<-- p2 text
----
form zf_check_var_exist .
data: l_variant like disvariant.
if not p_vari is initial.
clear l_variant.
l_variant-report = v_progname.
l_variant-variant = p_vari.
call function 'REUSE_ALV_VARIANT_EXISTENCE'
exporting
i_save = 'U'
changing
cs_variant = l_variant
exceptions
wrong_input = 1
not_found = 2
program_error = 3
others = 4.
if sy-subrc = 0.
clear i_variant.
move: l_variant-variant to i_variant-variant,
l_variant-report to i_variant-report.
else.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endif.
endform. " ZF_CHECK_VAR_EXIST
&----
*& Form ZF_VARIANT_F4
&----
text
----
--> p1 text
<-- p2 text
----
form zf_variant_f4 .
data: x_variant like disvariant.
call function 'REUSE_ALV_VARIANT_F4'
exporting
is_variant = i_variant
I_TABNAME_HEADER =
I_TABNAME_ITEM =
IT_DEFAULT_FIELDCAT =
i_save = 'U'
i_display_via_grid = 'X'
importing
E_EXIT =
es_variant = x_variant
exceptions
not_found = 1
program_error = 2
others = 3
.
if sy-subrc = 0.
p_vari = x_variant-variant.
d_vari = p_vari.
clear i_variant.
move: x_variant-variant to i_variant-variant,
x_variant-report to i_variant-report.
else.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. " ZF_VARIANT_F4
2007 Nov 26 4:58 AM
HI
with this program you will know how to insert LOGO in ALV and TOP-OF-page in alv and intercative ALV
REPORT ztest_alv_logo.
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<b>Reward if usefull</b>
2007 Nov 26 5:00 AM
Hi,
IN SE38 type in BC*ALV or SALV* then press F4 to get ALV examples.
Hope it helps...
P.S. Please award points if it helps...
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |