‎2007 Feb 16 9:11 AM
hi
i am a new abaper
i have to develop a new alv report using function modules.
kindly can anyone send any sample code this
thanks in advance
‎2007 Feb 16 9:12 AM
Hi,
REPORT YMS_TESTALV .
TYPE-POOLS: SLIS.
DATA: REPID LIKE SY-REPID,
X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
L_LAYOUT type slis_layout_alv,
x_events type slis_alv_event,
it_events type slis_t_event with header line. "SLIS_T_EVENT.
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
MALE type i,
female type i,
PLANE(10),
ACTUAL(10),
PLANE1(10),
ACTUAL1(10),
END OF ITAB.
START-OF-SELECTION.
REPID = SY-REPID.
SELECT VBELN POSNR FROM VBAP UP TO 20 ROWS INTO TABLE ITAB.
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-SELTEXT_L = text-020. "'Planned cost'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 1.
X_FIELDCAT-OUTPUTLEN = 10 .
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-SELTEXT_L = text-053. "'Actual cost '.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 2."1.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'MALE'.
X_FIELDCAT-SELTEXT_L = 'MALE'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'FEMALE'.
X_FIELDCAT-SELTEXT_L = TEXT-T01. "'FEMALE'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
it_events-NAME = SLIS_EV_TOP_OF_PAGE.
it_events-FORM = 'TOP_OF_PAGE'.
APPEND iT_EVENTS.
CLEAR it_events .
L_LAYOUT-NO_COLHEAD = 'X'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPID
IS_LAYOUT = L_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
it_events = it_events[]
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 TOP_OF_PAGE.
*-To display the headers for main list
FORMAT COLOR COL_HEADING.
WRITE: / SY-ULINE(143).
WRITE: / SY-VLINE,
(8) 'LAST YEAR' ,
SY-VLINE,
(10) ' ' ,
SY-VLINE,
(19) 'CURRENT YEAR'(020) centered,
(19) 'CURRENT YEAR'(020),
sy-vline.
WRITE: / SY-VLINE,
(8) 'PLANE'(053) ,
SY-VLINE,
(8) 'ACTUAL'(054) ,
SY-VLINE,
(8) 'MALE'(056) ,
sy-vline,
(9) 'FEMALE'(057) ,
sy-vline.
FORMAT COLOR OFF.
**
ENDFORM.
Thanks,
Shankar
‎2007 Feb 16 9:12 AM
Hi,
REPORT YMS_TESTALV .
TYPE-POOLS: SLIS.
DATA: REPID LIKE SY-REPID,
X_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
L_LAYOUT type slis_layout_alv,
x_events type slis_alv_event,
it_events type slis_t_event with header line. "SLIS_T_EVENT.
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
MALE type i,
female type i,
PLANE(10),
ACTUAL(10),
PLANE1(10),
ACTUAL1(10),
END OF ITAB.
START-OF-SELECTION.
REPID = SY-REPID.
SELECT VBELN POSNR FROM VBAP UP TO 20 ROWS INTO TABLE ITAB.
X_FIELDCAT-FIELDNAME = 'VBELN'.
X_FIELDCAT-SELTEXT_L = text-020. "'Planned cost'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 1.
X_FIELDCAT-OUTPUTLEN = 10 .
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'POSNR'.
X_FIELDCAT-SELTEXT_L = text-053. "'Actual cost '.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 2."1.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'MALE'.
X_FIELDCAT-SELTEXT_L = 'MALE'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
X_FIELDCAT-FIELDNAME = 'FEMALE'.
X_FIELDCAT-SELTEXT_L = TEXT-T01. "'FEMALE'.
X_FIELDCAT-TABNAME = 'ITAB'.
X_FIELDCAT-COL_POS = 3.
APPEND X_FIELDCAT TO IT_FIELDCAT.
CLEAR X_FIELDCAT.
it_events-NAME = SLIS_EV_TOP_OF_PAGE.
it_events-FORM = 'TOP_OF_PAGE'.
APPEND iT_EVENTS.
CLEAR it_events .
L_LAYOUT-NO_COLHEAD = 'X'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPID
IS_LAYOUT = L_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
it_events = it_events[]
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 TOP_OF_PAGE.
*-To display the headers for main list
FORMAT COLOR COL_HEADING.
WRITE: / SY-ULINE(143).
WRITE: / SY-VLINE,
(8) 'LAST YEAR' ,
SY-VLINE,
(10) ' ' ,
SY-VLINE,
(19) 'CURRENT YEAR'(020) centered,
(19) 'CURRENT YEAR'(020),
sy-vline.
WRITE: / SY-VLINE,
(8) 'PLANE'(053) ,
SY-VLINE,
(8) 'ACTUAL'(054) ,
SY-VLINE,
(8) 'MALE'(056) ,
sy-vline,
(9) 'FEMALE'(057) ,
sy-vline.
FORMAT COLOR OFF.
**
ENDFORM.
Thanks,
Shankar
‎2007 Feb 16 9:14 AM
Hello,
Please refer the transaction DWDM for examples. This transaction contains lot of demo examples for different controls. You can also view the source code.
Regs,
Venkat Ramanan N
‎2007 Feb 16 9:15 AM
http://www.sapdevelopment.co.uk/reporting/alvhome.htm
refer this will help
‎2007 Feb 16 9:15 AM
Hi
Open SE38 -> type balv*-> you can get the HitList which shows all ALV demo programs.
You can get the code for your required functinality from these programs easily.
Regards,
kumar
‎2007 Feb 16 9:15 AM
Check the following link
http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_basic.htm
‎2007 Feb 16 9:21 AM
http://www.sap-img.com/abap/what-is-alv-programming.htm
http://www.sap-basis-abap.com/sapabap01.htm Here have a look at ABAP list viewer.
http://help.sap.com/saphelp_nw2004s/helpdata/en/66/bc7aab43c211d182b30000e829fbfe/content.htm I think this will help you a lot.
I hope it helps.
Best Regards,
Vibha
*Please mark all the helpful answers
‎2007 Feb 16 10:00 AM
Hello,
Let me know your email ID. Will forward good documents on ALV.
Regs,
Venkat
‎2007 Feb 16 11:54 AM
‎2007 Feb 16 10:35 AM
See If this example helps. An example of Billing Document
&----
*& Report ZALV_BILL_DOC
&----
REPORT zalv_bill_doc NO STANDARD PAGE HEADING.
&----
*& TABLE POOLS.
&----
TYPE-POOLS: slis.
&----
*& TABLES.
&----
TABLES: vbrk,
vbrp,
lips,
vbap.
&----
*& ALV DECLARATIONS.
&----
DATA: g_prgm TYPE sy-repid,
g_event TYPE slis_t_event,
g_field TYPE slis_t_fieldcat_alv,
g_keyinfo TYPE slis_keyinfo_alv,
g_sort TYPE slis_sortinfo_alv,
g_layout TYPE slis_layout_alv,
g_ltop TYPE slis_t_listheader,
g_top TYPE slis_formname VALUE 'TOP_OF_PAGE',
g_user TYPE slis_formname VALUE 'USER_COMMAND'.
&----
*& structures and internal tables.
&----
DATA: BEGIN OF x_htab,
vbeln TYPE vbrk-vbeln,
fkdat TYPE vbrk-fkdat,
kunag TYPE vbrk-kunag,
name1 TYPE kna1-name1,
waerk TYPE vbrk-waerk,
netwr TYPE vbrk-netwr,
END OF x_htab.
DATA: BEGIN OF x_itab,
vbeln TYPE vbrp-vbeln,
posnr TYPE vbrp-posnr,
matnr TYPE vbrp-matnr,
arktx TYPE vbrp-arktx,
fkimg TYPE vbrp-fkimg,
meins TYPE vbrp-meins,
netwr TYPE vbrp-netwr,
mwsbp TYPE vbrp-mwsbp,
vgbel_d TYPE lips-vbeln,
vgbel_o TYPE lips-vgbel,
END OF x_itab.
INTERNAL TABLES------------
DATA: i_htab LIKE STANDARD TABLE OF x_htab WITH HEADER LINE.
DATA: i_itab LIKE STANDARD TABLE OF x_itab WITH HEADER LINE.
&----
*& GLOBAL VERIABLES.
&----
DATA: g_pos TYPE i.
&----
*& SELECTION SCREEN.
&----
SELECTION-SCREEN: BEGIN OF BLOCK blk WITH FRAME TITLE text-t01.
SELECT-OPTIONS: s_vbeln FOR vbrk-vbeln.
SELECT-OPTIONS: s_fkdat FOR vbrk-fkdat.
SELECT-OPTIONS: s_kunag FOR vbrk-kunag.
SELECTION-SCREEN: END OF BLOCK blk.
&----
*& INITIALIZATION.
&----
g_prgm = sy-repid.
PERFORM get_event.
PERFORM get_hfield.
PERFORM get_ifield.
PERFORM get_keyinfo.
&----
*& START OF SELECTION.
&----
START-OF-SELECTION.
PERFORM get_data.
&----
*& END OF SELECTION.
&----
PERFORM comment_write.
PERFORM layput.
PERFORM write_data.
&----
*& Form get_event
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_event .
DATA: l_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = g_event
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
SORT g_event.
READ TABLE g_event WITH KEY name = slis_ev_top_of_page BINARY SEARCH
INTO l_event.
IF sy-subrc = 0.
MOVE g_top TO l_event-form.
APPEND l_event TO g_event.
ENDIF.
READ TABLE g_event WITH KEY name = slis_ev_user_command BINARY SEARCH
INTO l_event.
IF sy-subrc = 0.
MOVE g_top TO l_event-form.
APPEND l_event TO g_event.
ENDIF.
ENDFORM. " get_event
&----
*& Form get_hfield
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_hfield .
PERFORM add_fields USING:
'VBELN' 'BILLING DOC' 'X' '10' 'I_HTAB',
'FKDAT' 'YEAR' space '10' 'I_HTAB',
'KUNAG' 'CUSTOMER NO' space '10' 'I_HTAB',
'NAME1' 'CUSTOMER NAME' space '10' 'I_HTAB',
'WAERK' 'CURRENCY' space '10' 'I_HTAB',
'NETWR' 'NET AMT' space '10' 'I_HTAB'.
ENDFORM. " get_hfield
&----
*& Form add_fields
&----
text
----
-->P_0263 text
-->P_0264 text
-->P_0265 text
-->P_0266 text
-->P_0267 text
----
FORM add_fields USING value(p_fnam)
value(p_txt)
value(p_key)
value(p_len)
value(p_tab).
DATA: l_field TYPE slis_fieldcat_alv.
l_field-col_pos = g_pos.
l_field-fieldname = p_fnam.
l_field-seltext_m = p_txt.
l_field-key = p_key.
l_field-outputlen = p_len.
l_field-tabname = p_tab.
APPEND l_field TO g_field.
g_pos = g_pos + 1.
ENDFORM. " add_fields
&----
*& Form get_ifield
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_ifield .
PERFORM add_fields USING:
'POSNR' 'ITEM' 'X' '10' 'I_ITAB',
'MATNR' 'MATERIAL NO' space '10' 'I_ITAB',
'ARKTX' 'DESCRIPTION' space '10' 'I_ITAB',
'FKIMG' 'QUANTITY' space '10' 'I_ITAB',
'MEINS' 'U M' space '10' 'I_ITAB',
'NETWR' 'NET AMT' space '10' 'I_ITAB',
'MWSBP' 'TEXT AMT' space '10' 'I_ITAB',
'VGBEL_D' 'DILIVERY DOC' space '10' 'I_ITAB',
'VGBEL_O' 'ORDERED DOC' space '10' 'I_ITAB'.
ENDFORM. " get_ifield
&----
*& Form get_keyinfo
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_keyinfo .
g_keyinfo-header01 = 'VBELN'.
g_keyinfo-item01 = 'VBELN'.
ENDFORM. " get_keyinfo
&----
*& Form get_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_data .
SELECT vbrk~vbeln
vbrk~fkdat
vbrk~kunag
kna1~name1
vbrk~waerk
vbrk~netwr
INTO TABLE i_htab
FROM vbrk
INNER JOIN kna1
ON vbrkkunag EQ kna1kunnr
WHERE vbrk~vbeln IN s_vbeln
AND vbrk~fkdat IN s_fkdat
AND vbrk~kunag IN s_kunag
AND vbrk~fkart EQ 'F2'
AND vbrk~vbtyp EQ 'M'.
break-point.
IF sy-subrc NE 0.
MESSAGE 'NO DATA FOUND1' TYPE 'E'.
STOP.
ELSE.
IF NOT i_htab[] IS INITIAL.
SELECT vbrp~vbeln
vbrp~posnr
vbrp~matnr
vbrp~arktx
vbrp~fkimg
vbrp~meins
vbrp~netwr
vbrp~mwsbp
lips~vbeln
lips~vgbel
INTO TABLE i_itab
FROM vbrp
LEFT OUTER JOIN lips
ON vbrpvgbel EQ lipsvbeln
for all entries in i_htab
WHERE vbrp~vbeln EQ i_htab-vbeln.
IF sy-subrc NE 0.
MESSAGE 'NO DATA FOUND' TYPE 'E'.
ENDIF.
ELSE.
MESSAGE 'NO DATA FOUND2' TYPE 'E'.
ENDIF.
ENDIF.
ENDFORM. " get_data
&----
*& Form comment_write
&----
text
----
--> p1 text
<-- p2 text
----
FORM comment_write .
DATA: l_lhdr TYPE slis_listheader.
l_lhdr-typ = 'H'.
l_lhdr-info = 'BILLING DOCUMENT'.
APPEND l_lhdr TO g_ltop.
ENDFORM. " comment_write
&----
*& Form layput
&----
text
----
--> p1 text
<-- p2 text
----
FORM layput .
g_layout-detail_popup = 'X'.
g_layout-colwidth_optimize = 'X'.
g_layout-zebra = 'X'.
ENDFORM. " layput
&----
*& Form write_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM write_data .
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
i_callback_program = g_prgm
i_callback_pf_status_set = 'SET_PF_STATUS'
i_callback_user_command = 'USER_COMMAND'
is_layout = g_layout
it_fieldcat = g_field[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = g_event[]
IT_EVENT_EXIT =
i_tabname_header = 'I_HTAB'
i_tabname_item = 'I_ITAB'
I_STRUCTURE_NAME_HEADER =
I_STRUCTURE_NAME_ITEM =
is_keyinfo = g_keyinfo
IS_PRINT =
IS_REPREP_ID =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
IR_SALV_HIERSEQ_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab_header = i_htab
t_outtab_item = i_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. " write_data
&----
*& Form top_of_page
&----
text
----
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = g_ltop
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
.
ENDFORM. "top_of_page
form set_pf_status.
set pf-status 'S01'.
endform.
‎2007 Feb 16 12:02 PM
‎2007 Feb 16 1:08 PM
Hello,
http://www.sap-img.com/abap/sample-programs-on-alv-grid.htm
http://www.sap-img.com/abap-function.htm
http://www.sapdevelopment.co.uk/reporting/alvhome.htm
http://www.sapfans.com/forums/viewtopic.php?t=66305 <b>-this one discusses which way should you use - ABAP Objects calls or simple function modules</b>.
http://wiki.ittoolbox.com/index.php/Code:Ultimate_ALV_table_toolbox
regards,
Beejal
**Reward if this helps
‎2007 Feb 20 6:56 AM
‎2007 Feb 23 2:36 PM
Hi!
Why don't you try <a href="http://www.alvrobot.com.ar">www.ALVROBOT.com.ar</a>?
This site is intended to help ABAP programmers on the creation of ALV reports by automatically generating source code using a specially designed template.