06-07-2007 12:28 PM
plz guide me how to develop ALV reports step by step...
i know only normal reporting.
plz help me
mahesh
06-07-2007 12:41 PM
Hi mahesh,
please c the sample code for ALV...
type-pools : slis.
tables : vbap, vbak, vbep.
********DATA DECLARATIONS
data : diff type i.
data : date1 like sy-datum,
date2 like sy-datum.
*******
types : begin of t_vbak,
vbeln type vbak-vbeln,
kunnr type vbak-kunnr,
end of t_vbak.
data : it_vbak type standard table of t_vbak with header line.
types : begin of t_vbap,
vbeln type vbap-vbeln,
posnr type vbap-posnr,
matnr type vbap-matnr,
netpr type vbap-netpr,
arktx type vbap-arktx,
end of t_vbap.
data : it_vbap type standard table of t_vbap with header line.
types : begin of t_vbep,
vbeln type vbep-vbeln,
posnr type vbep-posnr,
edatu type vbep-edatu,
bmeng type vbep-bmeng,
end of t_vbep.
data : it_vbep type standard table of t_vbep with header line.
types : begin of t_final,
num type i,
kunnr type vbak-kunnr,
vbeln type vbep-vbeln,
posnr type vbap-posnr,
matnr type vbap-matnr,
arktx type vbap-arktx,
netpr type vbap-netpr,
bmeng type vbep-bmeng,
end of t_final.
data : it_final type standard table of t_final with header line.
******
data : it_fieldcat type slis_t_fieldcat_alv with header line .
data : it_layout type slis_t_layout with header line .
data : r_repid like sy-repid.
*****SELECTION SCREEN
selection-screen : begin of block aa with frame title text-001.
parameter : p_date type vbep-edatu default sy-datum obligatory.
parameter : p_day(2) type c default '30' obligatory.
selection-screen : end of block aa.
*****
at selection-screen.
date1 = p_date+0(2).
date2 = s_date-high.
diff = date1 + p_day.
*CONDENSE DIFF.
IF diff >= 30.
MESSAGE 'DATE RANGE SHOULD NOT BE GREATER THAN 30 DAYS' TYPE 'E'.
ENDIF.
start-of-selection.
perform data_selection.
perform fieldcat.
perform display.
&----
*& Form DATA_SELECTION
&----
text
----
--> p1 text
<-- p2 text
----
form data_selection .
select vbeln posnr edatu bmeng from vbep into table it_vbep
where edatu = diff and
bmeng ne 0.
describe table it_vbep.
if sy-tfill > 0.
select vbeln kunnr from vbak into table it_vbak for all entries in it_vbep where
vbeln = it_vbep-vbeln.
select vbeln posnr matnr netpr arktx from vbap into table it_vbap for all entries in it_vbep
where vbeln = it_vbep-vbeln and
posnr = it_vbep-posnr.
endif.
sort it_vbak by vbeln.
sort it_vbap by vbeln posnr.
loop at it_vbep.
clear it_final-num.
*IT_FINAL-NUM = 0.
it_final-num = sy-tabix .
it_final-vbeln = it_vbep-vbeln.
it_final-bmeng = it_vbep-bmeng.
read table it_vbak with key vbeln = it_vbep-vbeln binary search.
if sy-subrc = 0.
it_final-kunnr = it_vbak-kunnr.
endif.
read table it_vbap with key vbeln = it_vbep-vbeln
posnr = it_vbep-posnr binary search.
if sy-subrc = 0.
it_final-matnr = it_vbap-matnr.
it_final-arktx = it_vbap-arktx.
it_final-netpr = it_vbap-netpr.
endif.
append it_final.
clear it_final.
endloop.
endform. " DATA_SELECTION
&----
*& Form FIELDCAT
&----
text
----
--> p1 text
<-- p2 text
----
form fieldcat .
clear it_fieldcat.
it_fieldcat-tabname = 'IT_FINAL'.
it_fieldcat-fieldname = 'NUM'.
it_fieldcat-seltext_m = 'SERIAL NUMBER'.
append it_fieldcat.
clear it_fieldcat.
it_fieldcat-tabname = 'IT_FINAL'.
it_fieldcat-fieldname = 'KUNNR'.
it_fieldcat-seltext_m = 'ACCOUNT NUMBER'.
append it_fieldcat.
clear it_fieldcat.
it_fieldcat-tabname = 'IT_FINAL'.
it_fieldcat-fieldname = 'VBELN'.
it_fieldcat-seltext_m = 'ORDER NUMBER'.
append it_fieldcat.
clear it_fieldcat.
it_fieldcat-tabname = 'IT_FINAL'.
it_fieldcat-fieldname = 'MATNR'.
it_fieldcat-seltext_m = 'ITEM'.
append it_fieldcat.
clear it_fieldcat.
it_fieldcat-tabname = 'IT_FINAL'.
it_fieldcat-fieldname = 'ARKTX'.
it_fieldcat-seltext_m = 'MATERIAL DESCRIPTION'.
append it_fieldcat.
clear it_fieldcat.
it_fieldcat-tabname = 'IT_FINAL'.
it_fieldcat-fieldname = 'NETPR'.
it_fieldcat-seltext_m = 'DESCRIPTION'.
append it_fieldcat.
clear it_fieldcat.
it_fieldcat-tabname = 'IT_FINAL'.
it_fieldcat-fieldname = 'BMENG'.
it_fieldcat-seltext_m = 'QUANTITY'.
it_fieldcat-do_sum = 'X'.
append it_fieldcat.
endform. " FIELDCAT
&----
*& Form DISPLAY
&----
text
----
--> p1 text
<-- p2 text
----
form display .
r_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = r_repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
i_callback_top_of_page = 'X'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
i_grid_title = 'Report to display Autoship shipments due within N no. of days'
I_GRID_SETTINGS =
IS_LAYOUT = IT_LAYOUT
it_fieldcat = it_fieldcat[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
i_default = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = it_final
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
hope this will help u out...
Please reward points in case usefull...
Regards,
Prashant
06-07-2007 12:30 PM
Hi,.
have this code,
this includes interactive part also
check for user_command subroutine
REPORT ZFII_COSTING_REPORT_DISPLAY NO STANDARD PAGE HEADING
MESSAGE-ID ZFI.
TYPE-POOLS: FTIS.
FOR THE ALV DISPLAY.
TYPE-POOLS: SLIS.
DATA:
G_REPID LIKE SY-REPID,
GWA_SORT TYPE SLIS_SORTINFO_ALV,
GIT_SORT TYPE SLIS_T_SORTINFO_ALV,
GIT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
GIT_EVENTS TYPE SLIS_T_EVENT,
GFL_LAYOUT TYPE SLIS_LAYOUT_ALV,
GIT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV ,
GWA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
GIT_XS_EVENT TYPE SLIS_ALV_EVENT,
G_POS TYPE I VALUE 1.
DATA:
G_REPID LIKE SY-REPID,
GWA_SORT TYPE SLIS_SORTINFO_ALV,
GIT_SORT TYPE SLIS_T_SORTINFO_ALV,
GIT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
GIT_EVENTS TYPE SLIS_T_EVENT,
GFL_ITEMSLAYOUT TYPE SLIS_LAYOUT_ALV,
GIT_ITEMSFIELDCAT TYPE SLIS_T_FIELDCAT_ALV ,
GWA_ITEMSFIELDCAT TYPE SLIS_FIELDCAT_ALV,
GIT_XS_EVENT TYPE SLIS_ALV_EVENT,
G_ITEMSPOS TYPE I VALUE 1.
DECLARING THE VARIABLES.
DATA:
G_BUKRS TYPE T001-BUKRS.
TABLE FOR THE INITIAL FETCHING
TYPES: BEGIN OF T_COST.
INCLUDE STRUCTURE ZFII_COST.
TYPES: CNSTDGLACC TYPE ZFII_COSTING-CNSTDGLACC.
TYPES: END OF T_COST.
TYPES: T_IT_COST TYPE STANDARD TABLE OF T_COST.
DATA: GIT_COST TYPE T_IT_COST.
DATA: GWA_COST TYPE T_COST.
TYPES: BEGIN OF T_CONSOL.
INCLUDE STRUCTURE ZFII_COSTING.
TYPES: END OF T_CONSOL.
TYPES: T_IT_CONSOL TYPE STANDARD TABLE OF T_CONSOL.
DATA: GWA_CONSOL TYPE T_CONSOL.
DATA: GIT_CONSOL TYPE T_IT_CONSOL.
*TYPES: BEGIN OF T_SENDDATA.
INCLUDE STRUCTURE ZFII_COSTINGDETAILS.
*TYPES: END OF T_SENDDATA.
*TYPES: T_IT_SENDDATA TYPE STANDARD TABLE OF T_SENDDATA.
*DATA: GIT_SENDDATA TYPE T_IT_SENDDATA.
*DATA: GWA_SENDDATA TYPE T_SENDDATA.
TYPES: BEGIN OF T_BSIS,
HKONT TYPE BSIS-HKONT,
SHKZG TYPE BSIS-SHKZG,
DMBTR TYPE BSIS-DMBTR,
KOSTL TYPE BSIS-KOSTL,
END OF T_BSIS.
TYPES: T_IT_BSIS TYPE STANDARD TABLE OF T_BSIS.
DATA: GIT_BSIS TYPE T_IT_BSIS.
DATA: GWA_BSIS TYPE T_BSIS.
DATA: GIT_TOTALBSIS TYPE T_IT_BSIS.
DATA: GWA_TOTALBSIS TYPE T_BSIS.
DATA: G_FTIS_DATUM TYPE FTIS_DATUM.
DATA: G_FTIS_GJAHR TYPE FTIS_GJAHR.
DATA: G_FTIS_MONAT TYPE FTIS_MONAT.
ranges
RANGES: R_HKONT FOR BSIS-HKONT.
data: g_KOSTL type BSIS-KOSTL.
DESIGNING OF THE SELECTION SCREEN STARTS.
DATA: G_YEARMONTH TYPE ZFII_COST-YEARMONTH.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME. " TITLE TEXT-001.
PARAMETERS: P_COCODE TYPE T001-BUKRS DEFAULT 'H901'.
SELECT-OPTIONS: S_MONYR FOR G_YEARMONTH OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
DESIGN OF THE SELECTION SCREEN ENDS.
INITIALIZATION.
clearing and refreshing all the variables
and the tables used in the programme.
INITIALIZATION.
PERFORM CLEAR_REFRESH.
AT SELECTION-SCREEN.
event to validate the values entered
and fetching the data
if no data found error message will be shown
AT SELECTION-SCREEN.
PERFORM VALIDATE_VALUES.
*start of selection.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM CHANGE_DATA.
PERFORM DISPLAY_ALV.
&----
*& Form CLEAR_REFRESH
&----
text
----
--> p1 text
<-- p2 text
----
FORM CLEAR_REFRESH .
CLEAR: G_REPID.
G_REPID = SY-REPID.
CLEAR:
GWA_COST, G_POS,
G_BUKRS, GWA_TOTALBSIS,
R_HKONT, G_FTIS_DATUM.
REFRESH:
GIT_BSIS, GIT_COST.
ENDFORM. " CLEAR_REFRESH
&----
*& Form VALIDATE_VALUES
&----
text
----
--> p1 text
<-- p2 text
----
FORM VALIDATE_VALUES .
SELECT SINGLE
BUKRS FROM
T001 INTO G_BUKRS
WHERE BUKRS = P_COCODE.
IF SY-SUBRC NE 0.
MESSAGE E000 WITH TEXT-000.
ENDIF.
ENDFORM. " VALIDATE_VALUES
&----
*& Form GET_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DATA .
SELECT
MANDT
COMPCODE
YEARMONTH
DEPARTMENT
CNSTDGLACC
GLCODEFROM
GLCODETO
AMOUNT
FLAG
TYPE
FROM ZFII_COST
INTO TABLE GIT_COST
WHERE COMPCODE = P_COCODE
and YEARMONTH in S_MONYR.
IF SY-SUBRC NE 0.
MESSAGE I000 WITH TEXT-001.
STOP.
ELSE.
SELECT
MANDT
CNSTDGLACC
GLCODEFROM
GLCODETO
FLAG
FROM ZFII_COSTING
INTO TABLE GIT_CONSOL.
IF SY-SUBRC NE 0.
MESSAGE I000 WITH TEXT-003.
STOP.
ENDIF.
ENDIF.
ENDFORM. " GET_DATA
&----
*& Form Change_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM CHANGE_DATA .
IF GIT_CONSOL IS NOT INITIAL.
IF GIT_COST IS NOT INITIAL.
sort GIT_CONSOL.
LOOP AT GIT_COST INTO GWA_COST.
READ TABLE GIT_CONSOL INTO GWA_CONSOL
WITH KEY GLCODEFROM = GWA_COST-GLCODEFROM
GLCODETO = GWA_COST-GLCODETO
BINARY SEARCH.
IF SY-SUBRC EQ 0.
GWA_COST-CNSTDGLACC = GWA_CONSOL-CNSTDGLACC.
MODIFY GIT_COST FROM GWA_COST.
ENDIF.
CLEAR: GWA_CONSOL, GWA_COST.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM. " Change_data
&----
*& Form DISPLAY_ALV
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY_ALV .
GFL_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GFL_LAYOUT-ZEBRA = 'X'.
PERFORM FILL_FIELDCAT.
PERFORM SORT_FIELDS.
PERFORM CALL_GRID.
ENDFORM. " DISPLAY_ALV
&----
*& Form FILL_FIELDCAT
&----
text
----
--> p1 text
<-- p2 text
----
FORM FILL_FIELDCAT .
G_POS = G_POS + 1.
PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog
G_POS " Column Position
'COMPCODE' " InTab Field Name
'GIT_COST' " InTab Name
'5' " Output Length
'Company code' " Column Name Text
' ' " Datatype
' ' " Key?
' ' " Row Position
' ' " Hotspot
' ' " Emphasize
' ' " Do_sum field?
' ' " checkbox
' ' " EDIT
' '. " input
G_POS = G_POS + 1.
PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog
G_POS " Column Position
'YEARMONTH' " InTab Field Name
'GIT_COST' " InTab Name
'8' " Output Length
'Year & Month' " Column Name Text
' ' " Datatype
' ' " Key?
' ' " Row Position
' ' " Hotspot
' ' " Emphasize
' ' " Do_sum field?
' ' " checkbox
' ' " EDIT
' '. " input
G_POS = G_POS + 1.
PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog
G_POS " Column Position
'CNSTDGLACC' " InTab Field Name
'GIT_COST' " InTab Name
'8' " Output Length
'G/L Account code' " Column Name Text
' ' " Datatype
' ' " Key?
' ' " Row Position
' ' " Hotspot
' ' " Emphasize
' ' " Do_sum field?
' ' " checkbox
' ' " EDIT
' '. " input
G_POS = G_POS + 1.
PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog
G_POS " Column Position
'CNSTDGLACC' " InTab Field Name
'GIT_COST' " InTab Name
'8' " Output Length
'Cnsl GL' " Column Name Text
' ' " Datatype
' ' " Key?
' ' " Row Position
' ' " Hotspot
' ' " Emphasize
' ' " Do_sum field?
' ' " checkbox
' ' " EDIT
' '. " input
G_POS = G_POS + 1.
PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog
G_POS " Column Position
'DEPARTMENT' " InTab Field Name
'GIT_COST' " InTab Name
'4' " Output Length
'Department' " Column Name Text
' ' " Datatype
' ' " Key?
' ' " Row Position
' ' " Hotspot
' ' " Emphasize
' ' " Do_sum field?
' ' " checkbox
' ' " EDIT
' '. " input
G_POS = G_POS + 1.
PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog
G_POS " Column Position
'GLCODEFROM' " InTab Field Name
'GIT_COST' " InTab Name
'8' " Output Length
'From GL' " Column Name Text
'' " Datatype
' ' " Key?
' ' " Row Position
' ' " Hotspot
' ' " Emphasize
' ' " Do_sum field?
' ' " checkbox
' ' " EDIT
' '. " input
G_POS = G_POS + 1.
PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog
G_POS " Column Position
'GLCODETO' " InTab Field Name
'GIT_COST' " InTab Name
'8' " Output Length
'To GL' " Column Name Text
'' " Datatype
' ' " Key?
' ' " Row Position
' ' " Hotspot
' ' " Emphasize
' ' " Do_sum field?
' ' " checkbox
' ' " EDIT
' '. " input
G_POS = G_POS + 1.
PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog
G_POS " Column Position
'FLAG' " InTab Field Name
'GIT_COST' " InTab Name
'2' " Output Length
'Flag' " Column Name Text
'' " Datatype
' ' " Key?
' ' " Row Position
' ' " Hotspot
' ' " Emphasize
' ' " Do_sum field?
' ' " checkbox
' ' " EDIT
' '. " input
G_POS = G_POS + 1.
PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog
G_POS " Column Position
'TYPE' " InTab Field Name
'GIT_COST' " InTab Name
'2' " Output Length
'Type' " Column Name Text
'' " Datatype
' ' " Key?
' ' " Row Position
' ' " Hotspot
' ' " Emphasize
' ' " Do_sum field?
' ' " checkbox
' ' " EDIT
' '. " input
G_POS = G_POS + 1.
PERFORM INIT_FIELD_CATALOG USING GIT_FIELDCAT[] " Field Catalog
G_POS " Column Position
'AMOUNT' " InTab Field Name
'GIT_COST' " InTab Name
'18' " Output Length
'Amount' " Column Name Text
'CURR' " Datatype
' ' " Key?
' ' " Row Position
' ' " Hotspot
' ' " Emphasize
'X' " Do_sum field?
' ' " checkbox
' ' " EDIT
' '. " input
ENDFORM. " FILL_FIELDCAT
&----
*& Form init_field_catalog
&----
text
----
-->P_GIT_FIELDCAT text
-->PV_POS text
-->PV_FIELDNAME text
-->PV_TABNAME text
-->PV_OUTPUT text
-->PV_SELTEXT text
-->PV_DATATYPE text
-->PV_KEY text
-->PV_ROW text
-->PV_HOTSPOT text
-->PV_EMPHASIZE text
-->PV_SUM text
-->PV_CHECKBOX text
-->PV_INPUT text
----
FORM INIT_FIELD_CATALOG USING P_GIT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV
PV_POS LIKE GWA_FIELDCAT-COL_POS
PV_FIELDNAME LIKE GWA_FIELDCAT-FIELDNAME
PV_TABNAME LIKE GWA_FIELDCAT-TABNAME
PV_OUTPUT LIKE GWA_FIELDCAT-OUTPUTLEN
PV_SELTEXT LIKE GWA_FIELDCAT-SELTEXT_M
PV_DATATYPE LIKE GWA_FIELDCAT-DATATYPE
PV_KEY LIKE GWA_FIELDCAT-KEY
PV_ROW LIKE GWA_FIELDCAT-ROW_POS
PV_HOTSPOT LIKE GWA_FIELDCAT-HOTSPOT
PV_EMPHASIZE LIKE GWA_FIELDCAT-EMPHASIZE
PV_SUM LIKE GWA_FIELDCAT-DO_SUM
PV_CHECKBOX LIKE GWA_FIELDCAT-CHECKBOX
PV_EDIT LIKE GWA_FIELDCAT-EDIT
PV_INPUT LIKE GWA_FIELDCAT-INPUT.
DATA: LT_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
LT_FIELDCAT-OUTPUTLEN = PV_OUTPUT.
LT_FIELDCAT-COL_POS = PV_POS.
LT_FIELDCAT-FIELDNAME = PV_FIELDNAME.
LT_FIELDCAT-TABNAME = PV_TABNAME.
LT_FIELDCAT-SELTEXT_L = PV_SELTEXT.
LT_FIELDCAT-KEY = PV_KEY.
LT_FIELDCAT-ROW_POS = PV_ROW.
LT_FIELDCAT-HOTSPOT = PV_HOTSPOT.
LT_FIELDCAT-EMPHASIZE = PV_EMPHASIZE.
LT_FIELDCAT-DO_SUM = PV_SUM.
LT_FIELDCAT-CHECKBOX = PV_CHECKBOX.
LT_FIELDCAT-INPUT = PV_INPUT.
LT_FIELDCAT-EDIT = PV_EDIT.
LT_FIELDCAT-DATATYPE = PV_DATATYPE.
APPEND LT_FIELDCAT TO P_GIT_FIELDCAT.
CLEAR LT_FIELDCAT.
ENDFORM. " init_field_catalog
&----
*& Form SORT_FIELDS
&----
text
----
--> p1 text
<-- p2 text
----
FORM SORT_FIELDS .
GWA_SORT-SPOS = 1. " Sort order
GWA_SORT-FIELDNAME = 'COMPCODE'.
GWA_SORT-TABNAME = 'GIT_COST'.
GWA_SORT-UP = 'X'.
x_sort-subtot = 'X'. " Sub total allowed
APPEND GWA_SORT TO GIT_SORT.
CLEAR GWA_SORT.
GWA_SORT-SPOS = 2. " Sort order
GWA_SORT-FIELDNAME = 'YEARMONTH'.
GWA_SORT-TABNAME = 'GIT_COST'.
GWA_SORT-UP = 'X'.
x_sort-subtot = 'X'. " Sub total allowed
APPEND GWA_SORT TO GIT_SORT.
CLEAR GWA_SORT.
GWA_SORT-SPOS = 3. " Sort order
GWA_SORT-FIELDNAME = 'CNSTDGLACC'.
GWA_SORT-TABNAME = 'GIT_COST'.
GWA_SORT-UP = 'X'.
x_sort-subtot = 'X'. " Sub total allowed
APPEND GWA_SORT TO GIT_SORT.
CLEAR GWA_SORT.
GWA_SORT-SPOS = 4. " Sort order
GWA_SORT-FIELDNAME = 'DEPARTMENT'.
GWA_SORT-TABNAME = 'GIT_COST'.
GWA_SORT-UP = 'X'.
x_sort-subtot = 'X'. " Sub total allowed
APPEND GWA_SORT TO GIT_SORT.
CLEAR GWA_SORT.
ENDFORM. " SORT_FIELDS
&----
*& Form CALL_GRID
&----
text
----
--> p1 text
<-- p2 text
----
FORM CALL_GRID .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT = GFL_LAYOUT
IT_FIELDCAT = GIT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = GIT_SORT
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = GIT_COST
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. " CALL_GRID
----
*& Form SET_PF_STATUS
&----
text
----
-->EXTAB text
----
FORM SET_PF_STATUS USING EXTAB TYPE SLIS_T_EXTAB. "#EC CALLED
SET PF-STATUS 'ZFII_PF_STATUS'. " OF PROGRAM 'SAPLKKBL'.
ENDFORM. "set_pf_status
&----
*& Form USER_COMMAND
&----
Called from within the ALV processes.
&----
PV_UCOMM contains the sy-ucomm from ALV
SELFIELD is a structure that contains all the data required to
process a user selection. The following is an example
of the SELFIELD structure and sample values:
*
*
&----
TRIGGERS WHEN THE USER CLICK THE
FORM USER_COMMAND USING PV_UCOMM LIKE SY-UCOMM "#EC NEEDED
SELFIELD TYPE SLIS_SELFIELD. "#EC NEEDED
CASE PV_UCOMM.
WHEN '&IC1'.
when the user double clicks on any record this will show the
READ TABLE GIT_COST INTO GWA_COST INDEX SELFIELD-TABINDEX.
entire list of g/l accounts for which we calculated the sum.
IF SY-SUBRC EQ 0.
CLEAR: g_KOSTL.
g_KOSTL = GWA_COST-DEPARTMENT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GWA_COST-DEPARTMENT
IMPORTING
OUTPUT = g_KOSTL.
CLEAR: R_HKONT.
REFRESH: R_HKONT.
R_HKONT-SIGN = 'I'.
R_HKONT-OPTION = 'BT'.
R_HKONT-LOW = GWA_COST-GLCODEFROM.
R_HKONT-HIGH = GWA_COST-GLCODETO.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = R_HKONT-LOW
IMPORTING
OUTPUT = R_HKONT-LOW.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = R_HKONT-HIGH
IMPORTING
OUTPUT = R_HKONT-HIGH.
append r_hkont.
PERFORM DISPLAY_DETAILS.
ENDIF.
when OTHERS.
ENDCASE.
ENDFORM. "USER_COMMAND
&----
*& Form display_details
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY_DETAILS .
PERFORM GET_VALUES_BSIS.
PERFORM FILL_FIELDCAT_ITEMS.
PERFORM DISPALY_ITEMS.
ENDFORM. " display_details
&----
*& Form FILL_FIELDCAT_items
&----
text
----
--> p1 text
<-- p2 text
----
FORM FILL_FIELDCAT_ITEMS .
CLEAR: GIT_ITEMSFIELDCAT. ", GWA_ITEMSFIELDCAT.
REFRESH: GIT_ITEMSFIELDCAT.
GFL_ITEMSLAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GFL_ITEMSLAYOUT-ZEBRA = 'X'.
CLEAR: G_ITEMSPOS.
G_ITEMSPOS = G_ITEMSPOS + 1.
PERFORM INIT_FIELD_CATALOG USING GIT_ITEMSFIELDCAT[] " Field Catalog
G_ITEMSPOS " Column Position
'HKONT' " InTab Field Name
'GIT_TOTALBSIS' " InTab Name
'10' " Output Length
'G/L Account' " Column Name Text
' ' " Datatype
' ' " Key?
' ' " Row Position
' ' " Hotspot
' ' " Emphasize
' ' " Do_sum field?
' ' " checkbox
' ' " EDIT
' '. " input
G_ITEMSPOS = G_ITEMSPOS + 1.
PERFORM INIT_FIELD_CATALOG USING GIT_ITEMSFIELDCAT[] " Field Catalog
G_ITEMSPOS " Column Position
'KOSTL' " InTab Field Name
'GIT_TOTALBSIS' " InTab Name
'10' " Output Length
'Cost Center' " Column Name Text
' ' " Datatype
' ' " Key?
' ' " Row Position
' ' " Hotspot
' ' " Emphasize
' ' " Do_sum field?
' ' " checkbox
' ' " EDIT
' '. " input
G_ITEMSPOS = G_ITEMSPOS + 1.
PERFORM INIT_FIELD_CATALOG USING GIT_ITEMSFIELDCAT[] " Field Catalog
G_ITEMSPOS " Column Position
'DMBTR' " InTab Field Name
'GIT_TOTALBSIS' " InTab Name
'18' " Output Length
'Amount' " Column Name Text
'CURR' " Datatype
' ' " Key?
' ' " Row Position
' ' " Hotspot
' ' " Emphasize
'X' " Do_sum field?
' ' " checkbox
' ' " EDIT
' '. " input
ENDFORM. " FILL_FIELDCAT_items
&----
*& Form get_values_bsis
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_VALUES_BSIS .
clear: " G_FTIS_DATUM,
G_FTIS_GJAHR, G_FTIS_MONAT.
G_FTIS_DATUM+0(6) = gwa_cost-YEARMONTH.
G_FTIS_DATUM+6(2) = '01'.
CALL FUNCTION 'FTI_FISCAL_YEAR_MONTH_GET'
EXPORTING
I_BUKRS = 'H901'
I_BUDAT = G_FTIS_DATUM
I_DZTERM = FTIS_DATUM-INITIAL
I_GJAHR = FTIS_GJAHR-INITIAL
IMPORTING
E_GJAHR = G_FTIS_GJAHR
E_MONAT = G_FTIS_MONAT.
IF NOT GIT_COST IS INITIAL.
CLEAR: GWA_BSIS, GWA_TOTALBSIS.
REFRESH: GIT_BSIS, GIT_TOTALBSIS.
SELECT
HKONT
SHKZG
DMBTR
KOSTL
FROM BSIS
INTO TABLE GIT_BSIS
WHERE BUKRS = P_COCODE
AND HKONT in R_HKONT
AND GJAHR = G_FTIS_GJAHR
AND MONAT = G_FTIS_MONAT
AND KOSTL eq g_KOSTL.
IF SY-SUBRC EQ 0.
LOOP AT GIT_BSIS INTO GWA_BSIS.
SHIFT GWA_BSIS-HKONT LEFT DELETING LEADING '0'.
GWA_TOTALBSIS-HKONT = GWA_BSIS-HKONT.
GWA_TOTALBSIS-KOSTL = GWA_BSIS-KOSTL.
IF GWA_BSIS-SHKZG = 'H'.
GWA_TOTALBSIS-DMBTR = GWA_BSIS-DMBTR * -1.
ELSE.
GWA_TOTALBSIS-DMBTR = GWA_BSIS-DMBTR.
ENDIF.
APPEND GWA_TOTALBSIS TO GIT_TOTALBSIS.
CLEAR: GWA_TOTALBSIS, GWA_BSIS.
ENDLOOP.
SORT GIT_TOTALBSIS ASCENDING BY HKONT KOSTL.
ENDIF.
ENDIF.
ENDFORM. " get_values_bsis
&----
*& Form dispaly_items
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPALY_ITEMS .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT = GFL_ITEMSLAYOUT
IT_FIELDCAT = GIT_ITEMSFIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = GIT_TOTALBSIS
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. " dispaly_items
reward points if helpful.
regards,
venkatesh
06-07-2007 12:39 PM
Simple ALV report
http://www.sapgenie.com/abap/controls/alvgrid.htm
http://wiki.ittoolbox.com/index.php/Code:Ultimate_ALV_table_toolbox
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. 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
7.. 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
reward points if helfull
Regards
Suresh.D
06-07-2007 12:32 PM
hi,...
Try these links
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
reagrds,
veeresh
06-07-2007 12:33 PM
hi,
type-pools : slis.
tables : mara.
data : it_mara like table of mara,
wa_mara like line of it_mara,
it_fieldcat type slis_t_fieldcat_alv,
wa_fieldcat like line of it_fieldcat.
select *
from mara
into table it_mara up to 30 rows.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = 'MARA'
CHANGING
ct_fieldcat = it_fieldcat
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = ' '
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'Material Master Display'
I_GRID_SETTINGS = I_GRID_SETTINGS
IS_LAYOUT = IS_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = IT_EVENTS
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
t_outtab = it_mara
EXCEPTIONS
PROGRAM_ERROR = 1
<b>
Reward useful points</b>
Siva
06-07-2007 12:35 PM
Hi mahesh
I'm having a good document on alv grid creation give me ur mail id i'll provide u that material
Reward all helpfull answers
Regards
Pavan
06-07-2007 12:45 PM
06-07-2007 12:51 PM
Hi mahesh
I had forwarded the material check ur inbox
reward all helpfull answers
Regards
Pavan
06-07-2007 12:35 PM
Hi,
Goto SE38 transaction, and in the menu options navigate to..
Environment->Examples->Control Examples
There you will get everything related to ALV and Control framework.
Reward points if helpful.
Regards,
Basu.
06-07-2007 12:36 PM
Hi,
Check the following link:
For document:
http://www.sapbrain.com/TUTORIALS/TECHNICAL/ALV_tutorial.html
For examples:
http://www.sap-img.com/abap-function.htm
regards,
Bhaskar
06-07-2007 12:41 PM
Hi mahesh,
please c the sample code for ALV...
type-pools : slis.
tables : vbap, vbak, vbep.
********DATA DECLARATIONS
data : diff type i.
data : date1 like sy-datum,
date2 like sy-datum.
*******
types : begin of t_vbak,
vbeln type vbak-vbeln,
kunnr type vbak-kunnr,
end of t_vbak.
data : it_vbak type standard table of t_vbak with header line.
types : begin of t_vbap,
vbeln type vbap-vbeln,
posnr type vbap-posnr,
matnr type vbap-matnr,
netpr type vbap-netpr,
arktx type vbap-arktx,
end of t_vbap.
data : it_vbap type standard table of t_vbap with header line.
types : begin of t_vbep,
vbeln type vbep-vbeln,
posnr type vbep-posnr,
edatu type vbep-edatu,
bmeng type vbep-bmeng,
end of t_vbep.
data : it_vbep type standard table of t_vbep with header line.
types : begin of t_final,
num type i,
kunnr type vbak-kunnr,
vbeln type vbep-vbeln,
posnr type vbap-posnr,
matnr type vbap-matnr,
arktx type vbap-arktx,
netpr type vbap-netpr,
bmeng type vbep-bmeng,
end of t_final.
data : it_final type standard table of t_final with header line.
******
data : it_fieldcat type slis_t_fieldcat_alv with header line .
data : it_layout type slis_t_layout with header line .
data : r_repid like sy-repid.
*****SELECTION SCREEN
selection-screen : begin of block aa with frame title text-001.
parameter : p_date type vbep-edatu default sy-datum obligatory.
parameter : p_day(2) type c default '30' obligatory.
selection-screen : end of block aa.
*****
at selection-screen.
date1 = p_date+0(2).
date2 = s_date-high.
diff = date1 + p_day.
*CONDENSE DIFF.
IF diff >= 30.
MESSAGE 'DATE RANGE SHOULD NOT BE GREATER THAN 30 DAYS' TYPE 'E'.
ENDIF.
start-of-selection.
perform data_selection.
perform fieldcat.
perform display.
&----
*& Form DATA_SELECTION
&----
text
----
--> p1 text
<-- p2 text
----
form data_selection .
select vbeln posnr edatu bmeng from vbep into table it_vbep
where edatu = diff and
bmeng ne 0.
describe table it_vbep.
if sy-tfill > 0.
select vbeln kunnr from vbak into table it_vbak for all entries in it_vbep where
vbeln = it_vbep-vbeln.
select vbeln posnr matnr netpr arktx from vbap into table it_vbap for all entries in it_vbep
where vbeln = it_vbep-vbeln and
posnr = it_vbep-posnr.
endif.
sort it_vbak by vbeln.
sort it_vbap by vbeln posnr.
loop at it_vbep.
clear it_final-num.
*IT_FINAL-NUM = 0.
it_final-num = sy-tabix .
it_final-vbeln = it_vbep-vbeln.
it_final-bmeng = it_vbep-bmeng.
read table it_vbak with key vbeln = it_vbep-vbeln binary search.
if sy-subrc = 0.
it_final-kunnr = it_vbak-kunnr.
endif.
read table it_vbap with key vbeln = it_vbep-vbeln
posnr = it_vbep-posnr binary search.
if sy-subrc = 0.
it_final-matnr = it_vbap-matnr.
it_final-arktx = it_vbap-arktx.
it_final-netpr = it_vbap-netpr.
endif.
append it_final.
clear it_final.
endloop.
endform. " DATA_SELECTION
&----
*& Form FIELDCAT
&----
text
----
--> p1 text
<-- p2 text
----
form fieldcat .
clear it_fieldcat.
it_fieldcat-tabname = 'IT_FINAL'.
it_fieldcat-fieldname = 'NUM'.
it_fieldcat-seltext_m = 'SERIAL NUMBER'.
append it_fieldcat.
clear it_fieldcat.
it_fieldcat-tabname = 'IT_FINAL'.
it_fieldcat-fieldname = 'KUNNR'.
it_fieldcat-seltext_m = 'ACCOUNT NUMBER'.
append it_fieldcat.
clear it_fieldcat.
it_fieldcat-tabname = 'IT_FINAL'.
it_fieldcat-fieldname = 'VBELN'.
it_fieldcat-seltext_m = 'ORDER NUMBER'.
append it_fieldcat.
clear it_fieldcat.
it_fieldcat-tabname = 'IT_FINAL'.
it_fieldcat-fieldname = 'MATNR'.
it_fieldcat-seltext_m = 'ITEM'.
append it_fieldcat.
clear it_fieldcat.
it_fieldcat-tabname = 'IT_FINAL'.
it_fieldcat-fieldname = 'ARKTX'.
it_fieldcat-seltext_m = 'MATERIAL DESCRIPTION'.
append it_fieldcat.
clear it_fieldcat.
it_fieldcat-tabname = 'IT_FINAL'.
it_fieldcat-fieldname = 'NETPR'.
it_fieldcat-seltext_m = 'DESCRIPTION'.
append it_fieldcat.
clear it_fieldcat.
it_fieldcat-tabname = 'IT_FINAL'.
it_fieldcat-fieldname = 'BMENG'.
it_fieldcat-seltext_m = 'QUANTITY'.
it_fieldcat-do_sum = 'X'.
append it_fieldcat.
endform. " FIELDCAT
&----
*& Form DISPLAY
&----
text
----
--> p1 text
<-- p2 text
----
form display .
r_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = r_repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
i_callback_top_of_page = 'X'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
i_grid_title = 'Report to display Autoship shipments due within N no. of days'
I_GRID_SETTINGS =
IS_LAYOUT = IT_LAYOUT
it_fieldcat = it_fieldcat[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
i_default = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = it_final
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
hope this will help u out...
Please reward points in case usefull...
Regards,
Prashant
06-07-2007 12:49 PM
Hi,
check this links.these links guide u all type of alv reports.
http://www.sapdevelopment.co.uk/reporting/alv/alvgrid.htm http://www.sapdevelopment.co.uk/reporting/reportinghome.htm
example:
REPORT ZBHALV_LIST1.
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
I_CALLBACK_PF_STATUS_SET = 'STATUS'
I_CALLBACK_USER_COMMAND = 'UCOMM'
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.
FORM STATUS USING MYMENU.
SET PF-STATUS 'MENU'.
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.
rgds,
bharat.
06-07-2007 1:02 PM
Hi,
The steps to be followed for ALV reporting are,
1. Populate the internal table you have to display.
2.Build field catalog if structure of your internal table is not the same as a standard table.
3.Building field catalog helps you to develop a structure for your internal table with
all details like position of the fields, from table name, hotspot etc.
4.Call function Reuse_Alv_Grid_Display to display the ALV layout.
5. Interactive lists can be done using User_command option.
Refer to the code below.
----
START-OF-SELECTION.
PERFORM f_read_data_kna1.
PERFORM f_display_data_kna1.
----
Form f_read_data_kna1
----
FORM f_read_data_kna1.
Read customer data with a least one order
SELECT matnr ernam INTO CORRESPONDING FIELDS OF TABLE gt_kna1
FROM kna1 AS k.
ENDFORM. " F_READ_DATA_KNA1
----
Form f_display_data_kna1
----
FORM f_display_data_kna1.
DATA:
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv.
Build the field catalog
PERFORM endofsel_build_fieldcatalog.
Display the list
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND_KNA1'
it_fieldcat = lt_fieldcat
TABLES
t_outtab = gt_kna1.
----
FORM USER_COMMAND_KNA1 *
----
FORM user_command_kna1 USING u_ucomm LIKE sy-ucomm
us_selfield TYPE slis_selfield."#EC CALLED
CASE u_ucomm.
WHEN '&IC1'. " Pick
READ TABLE gt_kna1 INDEX us_selfield-tabindex.
CHECK sy-subrc EQ 0.
PERFORM f_read_data_vbak. " Read data from VBAK
PERFORM f_display_data_vbak. " Display orders
ENDCASE.
ENDFORM. " USER_COMMAND_KNA1
FORM endofsel_build_fieldcatalog.
**
CLEAR : it_fieldcat.
REFRESH: it_fieldcat.
**
PERFORM build_cat USING 'MATNR'
'CHAR'
'GT_FINAL'
gl_pos
text-001
18
'X'
'X'
space.
**
PERFORM build_cat USING 'ERSDA'
'DATS'
'GT_FINAL'
gl_pos
text-002
8
space
space
space.
**
PERFORM build_cat USING 'ERNAM'
'CHAR'
'GT_FINAL'
gl_pos
text-003
12
space
space
space.
FORM build_cat USING l_fieldname TYPE slis_fieldcat_alv-fieldname
l_datatype TYPE slis_fieldcat_alv-datatype
l_tabname TYPE slis_fieldcat_alv-tabname
l_pos TYPE i
l_seltext_m TYPE
slis_fieldcat_alv-reptext_ddic
l_outputlen TYPE slis_fieldcat_alv-outputlen
l_hotspot TYPE slis_fieldcat_alv-hotspot
l_key TYPE slis_fieldcat_alv-key
l_do_sum TYPE slis_fieldcat_alv-do_sum.
**
DATA : lw_fieldcat TYPE slis_fieldcat_alv.
**
CLEAR lw_fieldcat.
**
lw_fieldcat-fieldname = l_fieldname.
lw_fieldcat-datatype = l_datatype.
lw_fieldcat-tabname = l_tabname.
lw_fieldcat-col_pos = l_pos.
lw_fieldcat-reptext_ddic = l_seltext_m.
lw_fieldcat-outputlen = l_outputlen.
lw_fieldcat-hotspot = l_hotspot.
lw_fieldcat-key = l_key.
lw_fieldcat-do_sum = l_do_sum.
**
APPEND lw_fieldcat TO it_fieldcat.
l_pos = l_pos + 1.
**
**ENDFORM. "build_cat
Reward points if it was useful.
Regards,
Hema.