‎2007 May 07 9:54 AM
Hi please send any example on alv interactive program
Regards
‎2007 May 07 9:55 AM
Hi
Goto SE38 and type BCALV and click F4 button. All are examples of ALV programs.
Best regards,
Prashant
‎2007 May 07 9:56 AM
Hi
report yh645_secndry_alv.
type-pools: slis.
data: fieldcat type slis_t_fieldcat_alv,
fieldcat_ln like line of fieldcat,
fs_layout type slis_layout_alv,
t_layoout like standard table
of fs_layout.
data: begin of fs_spfli,
carrid type spfli-carrid,
connid type spfli-connid,
countryfr type spfli-countryfr,
cityfrom type spfli-cityfrom,
airpfrom type spfli-airpfrom,
countryto type spfli-countryto,
cityto type spfli-cityto,
airpto type spfli-airpto,
fltime type spfli-fltime,
deptime type spfli-deptime,
arrtime type spfli-arrtime,
distance type spfli-distance,
distid type spfli-distid,
fltype type spfli-fltype,
period type spfli-period,
checkbox,
color(3),
end of fs_spfli.
data:
begin of fs_table,
carrid type spfli-carrid,
connid type spfli-connid,
end of fs_table.
data: begin of fs_sflight,
check,
color(3).
include type sflight.
data:end of fs_sflight.
data:
begin of fs_table1,
carrid type sflight-carrid,
connid type sflight-connid,
fldate type sflight-fldate,
end of fs_table1.
data:
t_spfli like standard table
of fs_spfli.
data:
t_table like standard table
of fs_table.
data:
t_table1 like standard table
of fs_table1.
data:
t_sflight like standard table
of fs_sflight.
data:
t_sbook like standard table
of sbook.
data t_layout type slis_layout_alv.
select *
into corresponding fields of table t_spfli
from spfli.
perform start_list_viewer.
perform get_spfli_details.
&----
*& Form SUB1
&----
text
----
-->RT_EXTAB text
----
form sub1 using rt_extab type slis_t_extab.
data: flight type slis_extab.
flight-fcode = 'SFLIGHT'.
append flight to rt_extab.
set pf-status 'SFLIGHT'. " EXCLUDING RT_EXTAB.
endform. "SUB1
&----
*& Form START_LIST_VIEWER
&----
text
----
--> p1 text
<-- p2 text
----
form start_list_viewer .
data: pgm like sy-repid.
pgm = sy-repid.
fs_layout-box_fieldname = 'CHECKBOX'.
fs_layout-info_fieldname = 'COLOR'.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = pgm
i_callback_pf_status_set = 'SUB1'
i_callback_user_command = 'USER_COMMAND'
i_structure_name = 'SPFLI'
is_layout = fs_layout
tables
t_outtab = t_spfli
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. " START_LIST_VIEWER
*******Process Call Back Events (Begin)**************************
form user_command using ucomm like sy-ucomm
selfield type slis_selfield.
case ucomm.
when 'SFLIGHT'.
selfield-refresh = 'X'.
perform get_spfli_details.
select *
from sflight
into corresponding fields of table t_sflight
for all entries in t_table
where carrid eq t_table-carrid
and connid eq t_table-connid.
perform display_sflight.
when 'SBOOK'.
selfield-refresh = 'X'.
perform get_sflight_details.
select *
from sbook
into corresponding fields of table t_sbook
for all entries in t_table1
where carrid eq t_table1-carrid
and connid eq t_table1-connid
and fldate eq t_table1-fldate.
perform display_sbook.
endcase.
endform. "USER_COMMAND
&----
*& Form SUB2
&----
text
----
-->RT_EXTAB text
----
form sub2 using rt_extab type slis_t_extab.
data: flight type slis_extab.
flight-fcode = 'SBOOK'.
append flight to rt_extab.
set pf-status 'SBOOK'. " EXCLUDING RT_EXTAB.
endform. "SUB2
&----
*& Form DISPLAY_SFLIGHT
&----
text
----
--> p1 text
<-- p2 text
----
form display_sflight .
data: pgm like sy-repid.
pgm = sy-repid.
clear t_layout.
fs_layout-box_fieldname = 'CHECK'.
fs_layout-info_fieldname = 'COLOR'.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = pgm
i_callback_pf_status_set = 'SUB2'
i_callback_user_command = 'USER_COMMAND'
i_structure_name = 'SFLIGHT'
is_layout = fs_layout
tables
t_outtab = t_sflight
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_SFLIGHT
&----
*& Form GET_SPFLI_DETAILS
&----
text
----
--> p1 text
<-- p2 text
----
form get_spfli_details .
loop at t_spfli into fs_spfli.
if fs_spfli-checkbox = 'X'.
fs_spfli-color = 'C51'.
fs_spfli-checkbox = '1'.
fs_table-carrid = fs_spfli-carrid.
fs_table-connid = fs_spfli-connid.
append fs_table to t_table.
modify t_spfli from fs_spfli.
endif.
endloop.
endform. " GET_SFLIGHT_DETAILS
&----
*& Form GET_SFLIGHT_DETAILS
&----
text
----
--> p1 text
<-- p2 text
----
form get_sflight_details .
loop at t_sflight into fs_sflight.
if fs_sflight-check = 'X'.
fs_sflight-color = 'C71'.
fs_sflight-check = '1'.
fs_table1-carrid = fs_sflight-carrid.
fs_table1-connid = fs_sflight-connid.
fs_table1-fldate = fs_sflight-fldate.
append fs_table1 to t_table1.
modify t_sflight from fs_sflight.
endif.
endloop.
endform. " GET_SFLIGHT_DETAILS
&----
*& Form DISPLAY_SBOOK
&----
text
----
--> p1 text
<-- p2 text
----
form display_sbook .
data: pgm like sy-repid.
pgm = sy-repid.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = pgm
i_structure_name = 'SBOOK'
tables
t_outtab = t_sbook
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_SBOOK
Reward points if useful
Regards
Anji
‎2007 May 07 9:56 AM
hi,
ALV
http://www.geocities.com/mpioud/Abap_programs.html
http://www.sapdevelopment.co.uk/reporting/reportinghome.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
Go thru these programs they may help u to try on some hands on
ALV Demo program
BCALV_DEMO_HTML
BCALV_FULLSCREEN_DEMO ALV Demo: Fullscreen Mode
BCALV_FULLSCREEN_DEMO_CLASSIC ALV demo: Fullscreen mode
BCALV_GRID_DEMO Simple ALV Control Call Demo Program
BCALV_TREE_DEMO Demo for ALV tree control
BCALV_TREE_SIMPLE_DEMO
BC_ALV_DEMO_HTML_D0100
Rgds
Reshma
‎2007 May 07 10:06 AM
hi ravi...
this is a simple ALV Interactive Report
<u><b>AIM</b></u>
Design a Report that would take display all the Sales Order between 2 dates. When the user double clicks on a sales order the report would then display additional details on that Sales Order
1) Use Select Options for the range of dates (VBAK-ERDAT).
2) Display the following fields for the Report from the Sales Document Header (VBAK). Customer name can be found in table (KNA1).
<b>
1)Document No.
2)Creation User Name
3) Creation Date
4) Customer Name</b>
3) Display the following for the drill down Report from the Sales Document Item (VBAP). Material Description can be found in table (MAKT).
<b>
1) Material No.
2) Material Description.
3) Batch Number.
4) Item type</b>
The program should handle exceptions and display proper error message where required.
<u><b>CODING</b></u>
REPORT sales_report NO STANDARD PAGE HEADING .
TABLES : vbak .
TYPES : BEGIN OF st_vbak ,
vbeln TYPE vbak-vbeln ,
ernam TYPE vbak-ernam ,
erdat TYPE vbak-erdat ,
name1 TYPE kna1-name1 ,
END OF st_vbak .
TYPES : BEGIN OF st_vbap ,
matnr TYPE vbap-matnr ,
maktx TYPE makt-maktx ,
charg TYPE vbap-charg ,
posar TYPE vbap-posar ,
END OF st_vbap .
DATA : it_vbak TYPE TABLE OF st_vbak ,
wa_vbak TYPE st_vbak ,
it_vbap TYPE TABLE OF st_vbap ,
wa_vbap TYPE st_vbap .
TOP-OF-PAGE .
WRITE :4 sy-vline .
WRITE AT 5(125) sy-uline.
WRITE :130 sy-vline .
WRITE :/4 sy-vline ,
10 Document No.,
39 sy-vline ,
40 Creation User Name,
69 sy-vline ,
70 Creation Date,
89 sy-vline ,
90 Customer Name,
130 sy-vline.
WRITE :/130 sy-vline .
WRITE AT 5(125) sy-uline.
WRITE :4 sy-vline ,130 sy-vline .
<b>TOP-OF-PAGE DURING LINE-SELECTION .
WRITE :4 sy-vline .
WRITE AT 5(125) sy-uline.
WRITE :130 sy-vline .
WRITE :/4 sy-vline ,
10 Material No.,
39 sy-vline ,
40 Material Description,
69 sy-vline ,
70 Batch Number.,
89 sy-vline ,
90 Item type,
130 sy-vline.
WRITE :/130 sy-vline .
WRITE AT 5(125) sy-uline.
WRITE :4 sy-vline ,
130 sy-vline .</b>
&----
*& S E L E C T - O P T I O N S
&----
SELECTION-SCREEN BEGIN OF BLOCK sales WITH FRAME TITLE text-009.
SELECT-OPTIONS put_date FOR vbak-erdat .
SELECTION-SCREEN END OF BLOCK sales .
<b>AT LINE-SELECTION .</b>
PERFORM select_and_write_vbap .
START-OF-SELECTION.
PERFORM sales_document .
END-OF-SELECTION.&----
*& Form select_and_write_vbap
&----
text
----
FORM select_and_write_vbap .
SELECT
vbap~matnr
makt~maktx
vbap~charg
vbap~posar
FROM ( vbap INNER JOIN makt ON vbap~matnr = makt~matnr )
INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
WHERE vbap~vbeln = wa_vbak-vbeln AND spras = 'EN' .
IF sy-subrc EQ 0 .
LOOP AT it_vbap INTO wa_vbap .
WRITE :/4 sy-vline ,
10 wa_vbap-matnr ,
39 sy-vline ,
40 wa_vbap-maktx ,
69 sy-vline ,
70 wa_vbap-charg ,
89 sy-vline ,
90 wa_vbap-posar ,
130 sy-vline .
ENDLOOP.
WRITE :/4 sy-vline.
WRITE AT 5(125) sy-uline.
WRITE 130 sy-vline.
ELSE .
MESSAGE s000(zginni) .
ENDIF .
ENDFORM . "select_vbap
&----
*& Form sales_document
&----
text
*---------------------------------------------------------------------*
FORM sales_document .
IF put_date-low IS INITIAL AND put_date-high IS NOT INITIAL .
SELECT
vbak~vbeln
vbak~ernam
vbak~erdat
kna1~name1
FROM ( kna1 INNER JOIN vbak ON vbak~kunnr = kna1~kunnr ) INTO
CORRESPONDING FIELDS OF TABLE IT_VBAK
WHERE vbak~erdat <= put_date-high.
IF sy-subrc EQ 0 .
PERFORM looping_wa_vbak .
ELSE .
MESSAGE s000(zginni) .
ENDIF .
ENDIF .
IF put_date-low IS NOT INITIAL AND put_date-high IS INITIAL .
SELECT vbeln
vbak~ernam
vbak~erdat
kna1~name1
FROM ( kna1 INNER JOIN vbak ON vbak~kunnr = kna1~kunnr ) INTO
CORRESPONDING FIELDS OF TABLE IT_VBAK
WHERE vbak~erdat EQ put_date-low .
IF sy-subrc EQ 0 .
PERFORM looping_wa_vbak .
ELSE .
MESSAGE s000(zginni) .
ENDIF .
ENDIF .
IF put_date-high IS INITIAL AND put_date-low IS INITIAL .
MESSAGE s000(zginni) .
ELSE .
SELECT
vbak~vbeln
vbak~ernam
vbak~erdat
kna1~name1
FROM ( kna1 INNER JOIN vbak ON vbak~kunnr = kna1~kunnr ) INTO
CORRESPONDING FIELDS OF TABLE IT_VBAK
WHERE vbak~erdat BETWEEN put_date-low AND put_date-high.
IF sy-subrc EQ 0 .
PERFORM looping_wa_vbak .
ELSE .
MESSAGE s000(zginni) .
ENDIF .
ENDIF .
ENDFORM . "sales_document
&----
*& Form looping_wa_vbak
&----
text
----
FORM looping_wa_vbak .
LOOP AT it_vbak INTO wa_vbak .
<b>WRITE :/4 sy-vline ,
10 wa_vbak-vbeln .
HIDE wa_vbak-vbeln .</b>
WRITE: 39 sy-vline ,
40 wa_vbak-ernam ,
69 sy-vline ,
70 wa_vbak-erdat ,
89 sy-vline ,
90 wa_vbak-name1 ,
130 sy-vline .
ENDLOOP.
WRITE :/4 sy-vline.
WRITE AT 5(125) sy-uline .
WRITE 130 sy-vline.
ENDFORM."looping_wa_vbak
‎2007 May 07 10:06 AM
<b><< SAMPLE INTERACTIVE ALV PROGRAM>> </b> .
<b>THIS WOULD HELP YOU IN UNDERSTANDING INTERACTIVE ALV</b>
TABLES: ZAMITCT.",ZAMITFT.
DATA: BEGIN OF T_AMIT_CT OCCURS 0,
NAME TYPE ZAMITCT-NAME,
EMPID TYPE ZAMITCT-EMPID,
AGE TYPE ZAMITCT-AGE,
ROW_NO TYPE I VALUE 0,
END OF T_AMIT_CT.
DATA T_AMIT_FT LIKE TABLE OF ZAMITFT WITH HEADER LINE.
TYPE-POOLS: SLIS.
CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
DATA: WS_TITLE TYPE LVC_TITLE VALUE 'Double click on Name or Empid',
FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
W_FIELDCAT LIKE LINE OF FIELDCAT,
GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV WITH HEADER LINE,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_EVENTS TYPE SLIS_T_EVENT,
GD_SORT TYPE SLIS_T_SORTINFO_ALV,
GS_PRINT TYPE SLIS_PRINT_ALV,
GD_REPID LIKE SY-REPID.
START-OF-SELECTION.
PERFORM RETRIEVE_DATA.
PERFORM BUILD_FIELD.
PERFORM EVENTTAB_BUILD USING GD_EVENTS.
PERFORM BUILD_LAYOUT CHANGING GD_LAYOUT.
PERFORM DISPLAY.
&----
*& Form retrieve_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM RETRIEVE_DATA .
DATA: LIN TYPE I.
SELECT * FROM ZAMITCT INTO CORRESPONDING FIELDS OF TABLE T_AMIT_CT.
DESCRIBE TABLE T_AMIT_CT LINES LIN.
IF LIN GT 0.
SORT T_AMIT_CT BY NAME EMPID ASCENDING.
LOOP AT T_AMIT_CT.
T_AMIT_CT-ROW_NO = SY-TABIX.
MODIFY T_AMIT_CT.
ENDLOOP.
ELSE.
SUBMIT ZAMITBIKES2.
ENDIF.
ENDFORM. " retrieve_data
&----
*& Form build_field
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_FIELD .
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = GD_REPID
I_INTERNAL_TABNAME = 't_amit_ct'
I_STRUCTURE_NAME = 'ZAMITBIKE'
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = FIELDCAT[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT FIELDCAT INTO W_FIELDCAT.
W_FIELDCAT-JUST = 'C'.
CASE W_FIELDCAT-FIELDNAME.
WHEN 'ROW_NO'.
W_FIELDCAT-SELTEXT_M = 'ROW_NO'.
W_FIELDCAT-COL_POS = 0.
W_FIELDCAT-KEY = 'X'.
WHEN 'NAME' .
W_FIELDCAT-SELTEXT_M = 'NAME'.
W_FIELDCAT-COL_POS = 1.
W_FIELDCAT-KEY = 'X'.
WHEN 'EMPID'.
W_FIELDCAT-SELTEXT_M = 'EMPID'.
W_FIELDCAT-COL_POS = 2.
W_FIELDCAT-KEY = 'X'.
W_FIELDCAT-HOTSPOT = 'X'.
WHEN 'AGE'.
W_FIELDCAT-SELTEXT_M = 'AGE'.
W_FIELDCAT-COL_POS = 3.
W_FIELDCAT-EMPHASIZE = 'C710'.
W_FIELDCAT-HOTSPOT = 'X'.
ENDCASE.
MODIFY FIELDCAT FROM W_FIELDCAT.
ENDLOOP.
ENDFORM. " build_field
&----
*& Form eventtab_build
&----
text
----
-->P_GD_EVENTS text
----
FORM EVENTTAB_BUILD USING P_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_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.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_END_OF_LIST INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
MODIFY P_EVENTS FROM LS_EVENT INDEX SY-TABIX.
ENDIF.
ENDFORM. " eventtab_build
&----
*& Form top_of_page
&----
text
----
FORM TOP_OF_PAGE.
DATA : P_REPORT_HEADER TYPE SLIS_T_LISTHEADER,
P_REPORT_FOOTER TYPE SLIS_T_LISTHEADER,
GS_LINE TYPE LINE OF SLIS_T_LISTHEADER,
FS_LINE TYPE LINE OF SLIS_T_LISTHEADER.
GS_LINE-TYP = 'H' .
GS_LINE-INFO = 'Employee Details'.
APPEND GS_LINE TO P_REPORT_HEADER.
CLEAR GS_LINE.
GS_LINE-TYP = 'S' .
GS_LINE-INFO = 'Thanks for visiting'.
APPEND GS_LINE TO P_REPORT_HEADER.
CLEAR GS_LINE.
FS_LINE-TYP = 'S' .
FS_LINE-INFO = 'Thanks for visiting'.
APPEND FS_LINE TO P_REPORT_FOOTER.
CLEAR FS_LINE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = P_REPORT_HEADER
I_LOGO = 'WIPROLOGO'
I_END_OF_LIST_GRID = 'X'
.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = P_REPORT_FOOTER
I_LOGO = 'WIPRO_LOGO'
I_END_OF_LIST_GRID = 'X'.
ENDFORM. "top_of_page
&----
*& Form build_layout
&----
text
----
<--P_GD_LAYOUT text
----
FORM BUILD_LAYOUT CHANGING P_GD_LAYOUT.
GD_LAYOUT-NO_INPUT = ''.
GD_LAYOUT-ZEBRA = 'X'.
GD_LAYOUT-HEADER_TEXT = 'My ALV'.
GD_LAYOUT-TOTALS_TEXT = 'Total'(201).
GD_LAYOUT-DETAIL_POPUP = 'X'.
GD_LAYOUT-DETAIL_TITLEBAR = 'Detail List Titlebar'.
ENDFORM. " build_layout
&----
*& Form DISPLAY
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY .
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GD_REPID
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'
I_CALLBACK_USER_COMMAND = '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 = 't_amit_ct'
I_BACKGROUND_ID = 't_amit_ct'
I_GRID_TITLE = WS_TITLE
I_GRID_SETTINGS =
IS_LAYOUT = GD_LAYOUT
IT_FIELDCAT = FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT =
IT_EVENTS = GD_EVENTS[]
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = T_AMIT_CT
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
&----
*& Form user_command
&----
text
----
-->R_UCOMM text
-->RS_SELFIELD text
----
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE
SLIS_SELFIELD.
CASE SY-UCOMM.
WHEN 'PRV'.
LEAVE TO SCREEN 0.
ENDCASE.
CASE RS_SELFIELD-FIELDNAME.
WHEN 'NAME'.
SELECT * FROM ZAMITFT INTO TABLE T_AMIT_FT WHERE NAME =
RS_SELFIELD-VALUE.
WHEN 'EMPID'.
SELECT * FROM ZAMITFT INTO TABLE T_AMIT_FT WHERE EMPID =
RS_SELFIELD-VALUE.
ENDCASE.
CLEAR: FIELDCAT[],FIELDCAT.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = GD_REPID
I_INTERNAL_TABNAME = 't_amit_ft'
I_STRUCTURE_NAME = 'ZAMITFT'
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = FIELDCAT[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT FIELDCAT INTO W_FIELDCAT.
W_FIELDCAT-JUST = 'C'.
CASE W_FIELDCAT-FIELDNAME.
WHEN 'NAME'.
W_FIELDCAT-SELTEXT_S = 'NAME'.
W_FIELDCAT-KEY = 'X'.
W_FIELDCAT-COL_POS = 0.
WHEN 'EMPID' .
W_FIELDCAT-SELTEXT_S = 'EMPID'.
W_FIELDCAT-KEY = 'X'.
W_FIELDCAT-COL_POS = 1.
WHEN 'SALARY' .
W_FIELDCAT-SELTEXT_S = 'SALARY'.
W_FIELDCAT-COL_POS = 2.
WHEN 'CITY' .
W_FIELDCAT-SELTEXT_S = 'CITY'.
W_FIELDCAT-COL_POS = 3.
ENDCASE.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GD_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = 't_amit_ft'
I_BACKGROUND_ID = 'BLUE.GIF'
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT = GD_LAYOUT
IT_FIELDCAT = FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT =
IT_EVENTS = GD_EVENTS
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = T_AMIT_FT
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. "user_command
&----
*& Form PF_STATUS
&----
text
----
-->R_STATUS_SET text
----
FORM PF_STATUS USING R_STATUS_SET.
SET PF-STATUS 'STANDARD'.
ENDFORM. "PF_STATUS<b></b><b></b>
‎2007 May 07 10:09 AM
‎2007 May 07 3:09 PM
hi,
internal table with header line.
data : begin of itab_mara,
matnr like mara-matnr,
enum like mara-enum,
end of itab_mara.
data : begin of itab_marc,
matnr like marc-matnr,
werks like marc-werks.
data : begin of itab_final,
data : d_fieldcat type slis_t_fieldcat_alv,
d_fieldcat_wa type slis_fieldcat_alv.
selection-screen : begin of block blk1 with frame title text-001.
select-options : s_matnr for mara-matnr,
s_werks for marc-werks.
selection-screen : end of block blk1.
d_fieldcat_wa-fieldname = 'MATNR'.
d_fieldcat_seltext_l = 'material number'.
d_fieldcat_wa-col_pos = 1.
append d_fieldcat_wa to t_fieldcat.
clear d_fieldcat_wa.
d_fieldcat_wa-fieldname = 'WERKS'.
d_fieldcat_seltext_l = 'plants'.
d_fieldcat_wa-col_pos = 2.
append d_fieldcat_wa to t_fieldcat.
clear d_fieldcat_wa.
data :gd_repid like sy-repid.
gd_repid = sy-repid.
call function module reuse_grid_display_alv.
exporting.
proramname = gd_repid.
fieldcat = d_fieldcat.
importing.
t_outtab = itab_final.
exceptions.
reward with points if helpful.
‎2007 Nov 19 5:40 AM
Hi
see this link you will find all types of ALV programs
Type-pools : slis.
Tables : vbap.
types: begin of t_vbap,
VBELN type VBELN_VA,
POSNR type POSNR_VA,
MATNR type MATNR,
MATWA type MATWA,
PMATN type PMATN,
CHARG type CHARG_D,
end of t_vbap.
DATA : i_vbap type standard table of t_VBAP,
i_fldcat type standard table of slis_fieldcat_alv,
wa_fldcat type slis_fieldcat_alv,
* layout type slis_layout_alv,
i_header type slis_t_listheader,
wa_header type slis_listheader,
I_EVENTS TYPE STANDARD TABLE OF SLIS_alv_EVENT,
WA_EVENTS TYPE SLIS_ALV_EVENT.
select-options: so_vbeln for VBAP-vbeln .
perform get_data.
perform build_fieldcatalog.
PERFORM EVENTS.
*perform buil_layout.
perform display_data.
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form get_data .
select
VBELN
POSNR
MATNR
MATWA
PMATN
CHARG
into corresponding fields of table i_vbap
from VBAP where vbeln in so_vbeln.
endform. " get_data
*&---------------------------------------------------------------------*
*& Form build_fieldcatalog
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form build_fieldcatalog .
wa_fldcat-fieldname = 'VBELN'.
wa_fldcat-seltext_m = 'sales Order'.
wa_fldcat-col_pos = 0.
wa_fldcat-outputlen = 10.
wa_fldcat-emphasize = 'X'.
* wa_fldcat-key = 'X'.
append wa_fldcat to i_fldcat.
clear wa_fldcat.
wa_fldcat-fieldname = 'POSNR'.
wa_fldcat-seltext_l = 'position number'.
wa_fldcat-col_pos = 1.
wa_fldcat-outputlen = 6.
wa_fldcat-emphasize = 'X'.
wa_fldcat-key = 'X'.
append wa_fldcat to i_fldcat.
clear wa_fldcat.
wa_fldcat-fieldname = 'MATNR'.
wa_fldcat-seltext_l = 'Material Number'.
wa_fldcat-col_pos = 2.
wa_fldcat-outputlen = 18.
wa_fldcat-emphasize = 'X'.
wa_fldcat-key = 'X'.
append wa_fldcat to i_fldcat.
clear wa_fldcat.
wa_fldcat-fieldname = 'MATWA'.
wa_fldcat-seltext_l = 'Material entered'.
wa_fldcat-col_pos = 3.
wa_fldcat-outputlen = 18.
wa_fldcat-emphasize = 'X'.
wa_fldcat-key = 'X'.
append wa_fldcat to i_fldcat.
clear wa_fldcat.
wa_fldcat-fieldname = 'PMATN'.
wa_fldcat-seltext_l = 'Pricing reference'.
wa_fldcat-col_pos = 4.
wa_fldcat-outputlen = 18.
wa_fldcat-emphasize = 'X'.
wa_fldcat-key = 'X'.
append wa_fldcat to i_fldcat.
clear wa_fldcat.
wa_fldcat-fieldname = 'CHARG'.
wa_fldcat-seltext_l = 'Batch Number'.
wa_fldcat-col_pos = 5.
wa_fldcat-outputlen = 10.
wa_fldcat-emphasize = 'X'.
wa_fldcat-key = 'X'.
append wa_fldcat to i_fldcat.
clear wa_fldcat.
endform. " build_fieldcatalog
*&---------------------------------------------------------------------*
*& Form buil_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
*form buil_layout .
*
* layout-no_hotspot = 'X'.
*
* layout-no_input = 'X'.
* layout-colwidth_optimize = 'X'.
* layout-totals_text = 'Totals'(201).
* layout-totals_only = 'X'.
** layout-header_text = 'helllllo'.
*
*
*endform. " buil_layout
*-------------------------------------------------------------*
*& Form EVENTS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form EVENTS .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = I_EVENTS
* EXCEPTIONS
* LIST_TYPE_WRONG = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE i_events INTO wa_events WITH KEY name = 'TOP_OF_PAGE'.
IF sy-subrc = 0.
wa_events-form = 'TOP_OF_PAGE'.
MODIFY i_events FROM wa_events TRANSPORTING form WHERE name = wa_events-name.
ENDIF.
CLEAR: wa_events.
endform.
" EVENTS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM TOP_OF_PAGE.
wa_header-typ = 'H'.
wa_header-info = 'ORDER DISPATCH DETAILS'.
append wa_header to i_header.
clear wa_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = I_HEADER
I_LOGO = 'CAPGEMINI'
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form display_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form display_data .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'Z_GD_ALV'
* I_CALLBACK_PF_STATUS_SET =
* I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT = layout
IT_FIELDCAT = i_fldcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = I_EVENTS
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = i_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. " display_data<b>Reward if usefull</b>