12-07-2007 11:00 AM
Hi to all
Please tell me how to calculate subtotal and total on a particular field in ALV grid report.
Thanks & regards
Anubhav
12-07-2007 11:02 AM
Hi,
For total.
While building the fieldcatalog you have use do_sum = 'X' for the column which you need the summation.
For subtotal use below code :
data :gt_sort TYPE slis_t_sortinfo_alv,
DATA: ls_sort TYPE slis_sortinfo_alv.
CLEAR ls_sort.
ls_sort-fieldname = 'Fieldname'.
ls_sort-up = 'X'.
ls_sort-subtot = 'X'.
APPEND ls_sort TO gt_sort.
And pass gt_sort to grid display export parameter I_sort.
Thanks,
Sriram Ponna.
12-07-2007 11:06 AM
Hi
Try with this sample coding
*&---------------------------------------------------------------------*
*& Report ZALVTOTAL *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZALVTOTAL .
TYPES :
BEGIN OF ty_vbak,
vkorg TYPE vbak-vkorg, " Sales organization
kunnr TYPE vbak-kunnr, " Sold-to party
vbeln TYPE vbak-vbeln, " Sales document
netwr TYPE vbak-netwr, " Net Value of the Sales Order
waerk TYPE vbak-waerk, " Document currency
END OF ty_vbak.
DATA:
vbak TYPE vbak,
gt_vbak TYPE TABLE OF ty_vbak.
SELECT-OPTIONS :
s_vkorg FOR vbak-vkorg, " Sales organization
s_kunnr FOR vbak-kunnr, " Sold-to party
s_vbeln FOR vbak-vbeln. " Sales document
SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.
PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.
SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------------------*
INITIALIZATION.
v_1 = 'Maximum of records to read'.
*---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM f_read_data.
PERFORM f_display_data.
*---------------------------------------------------------------------*
* Form f_read_data
*---------------------------------------------------------------------*
FORM f_read_data.
SELECT vkorg kunnr vbeln netwr waerk
UP TO p_max ROWS
INTO TABLE gt_vbak
FROM vbak
WHERE kunnr IN s_kunnr
AND vbeln IN s_vbeln
AND vkorg IN s_vkorg.
ENDFORM. " F_READ_DATA
*---------------------------------------------------------------------*
* Form f_display_data
*---------------------------------------------------------------------*
FORM f_display_data.
TYPE-POOLS: slis. " ALV Global types
DEFINE m_fieldcat.
add 1 to ls_fieldcat-col_pos.
ls_fieldcat-fieldname = &1.
ls_fieldcat-ref_tabname = 'VBAK'.
ls_fieldcat-do_sum = &2.
ls_fieldcat-cfieldname = &3.
append ls_fieldcat to lt_fieldcat.
END-OF-DEFINITION.
DEFINE m_sort.
add 1 to ls_sort-spos.
ls_sort-fieldname = &1.
ls_sort-up = 'X'.
ls_sort-subtot = &2.
append ls_sort to lt_sort.
END-OF-DEFINITION.
DATA:
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv,
lt_sort TYPE slis_t_sortinfo_alv,
ls_sort TYPE slis_sortinfo_alv,
ls_layout TYPE slis_layout_alv.
m_fieldcat 'VKORG' '' ''.
m_fieldcat 'KUNNR' '' ''.
m_fieldcat 'VBELN' '' ''.
m_fieldcat 'NETWR' 'X' 'WAERK'.
m_fieldcat 'WAERK' '' ''.
m_sort 'VKORG' 'X'. " Sort by vkorg and subtotal
m_sort 'KUNNR' 'X'. " Sort by kunnr and subtotal
m_sort 'VBELN' ''. " Sort by vbeln
ls_layout-cell_merge = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
is_layout = ls_layout
it_fieldcat = lt_fieldcat
it_sort = lt_sort
TABLES
t_outtab = gt_vbak.
ENDFORM. " F_DISPLAY_DATA
Regards
Pavan
12-07-2007 11:07 AM
hi,
try this
TABLES vbak.
TYPE-POOLS slis.
Data Declaration
TYPES : BEGIN OF t_vbak,
vbeln TYPE vbak-vbeln,
erdat TYPE vbak-erdat,
ernam TYPE vbak-ernam,
audat TYPE vbak-audat,
vbtyp TYPE vbak-vbtyp,
netwr TYPE vbak-netwr,
vkorg TYPE vbak-vkorg,
vkgrp TYPE vbak-vkgrp,
line_color(4) TYPE c,
END OF t_vbak.
DATA : it_vbak TYPE STANDARD TABLE OF t_vbak INITIAL SIZE 0,
wa_vbak TYPE t_vbak.
ALV Data Declaration
DATA : fldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gd_layout TYPE slis_layout_alv,
gd_repid TYPE sy-repid,
i_events TYPE slis_t_event,
it_sortinfo TYPE slis_t_sortinfo_alv WITH HEADER LINE,
w_events LIKE LINE OF i_events.
DATA : i_comment TYPE slis_t_listheader,
wa_comment TYPE slis_listheader.
START-OF-SELECTION.
PERFORM data_retrieval.
PERFORM bld_fldcat.
PERFORM it_sortinfo.
PERFORM bld_layout.
PERFORM display_alv_report.
Build Field Catalog for ALV Report
FORM bld_fldcat.
fldcat-fieldname = 'VBELN'.
fldcat-seltext_m = 'Sales Document'.
fldcat-col_pos = 0.
*FLDCAT-EMPHASIZE = 'C411'.
fldcat-outputlen = 20.
fldcat-key = 'X'.
APPEND fldcat TO fldcat.
CLEAR fldcat.
fldcat-fieldname = 'ERDAT'.
fldcat-seltext_l = 'Record Date created'.
fldcat-col_pos = 1.
fldcat-key = 'X'.
APPEND fldcat TO fldcat.
CLEAR fldcat.
fldcat-fieldname = 'ERNAM'.
fldcat-seltext_l = 'Cteated Object Person Name'.
APPEND fldcat TO fldcat.
CLEAR fldcat.
fldcat-fieldname = 'AUDAT'.
fldcat-seltext_m = 'Document Date'.
fldcat-col_pos = 3.
fldcat-emphasize = 'C110'.
APPEND fldcat TO fldcat.
CLEAR fldcat.
fldcat-fieldname = 'VBTYP'.
fldcat-seltext_l = 'SD Document category'.
fldcat-col_pos = 4.
APPEND fldcat TO fldcat.
CLEAR fldcat.
fldcat-fieldname = 'NETWR'.
fldcat-seltext_l = 'Net Value of the SO in Document Currency'.
fldcat-col_pos = 5.
fldcat-outputlen = 60.
fldcat-do_sum = 'X'.
fldcat-datatype = 'CURR'.
APPEND fldcat TO fldcat.
CLEAR fldcat.
fldcat-fieldname = 'VKORG'.
fldcat-seltext_l = 'Sales Organization'.
fldcat-col_pos = 6.
APPEND fldcat TO fldcat.
CLEAR fldcat.
fldcat-fieldname = 'VKGRP'.
fldcat-seltext_m = 'Sales Group'.
fldcat-col_pos = 7.
fldcat-emphasize = 'C801'.
APPEND fldcat TO fldcat.
CLEAR fldcat.
ENDFORM. "BLD_FLDCAT
Build Layout for ALV Grid Report
FORM bld_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-info_fieldname = 'LINE_COLOR'.
ENDFORM. "BLD_LAYOUT
Display report using ALV grid
FORM display_alv_report.
DATA t_event TYPE slis_t_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = t_event.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
gd_repid = sy-repid.
PERFORM z_alv_grid_display TABLES it_vbak..
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gd_repid
is_layout = gd_layout
it_events = i_events
it_fieldcat = fldcat[]
it_sort = it_sortinfo[]
i_save = 'X'
TABLES
t_outtab = it_vbak
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
EXIT.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "DISPLAY_ALV_REPORT
Retrieve data from VBAK table and populate itab IT_VBAK
FORM data_retrieval.
DATA ld_color(1) TYPE c.
SELECT vbeln erdat ernam audat vbtyp netwr vkorg
UP TO 100 ROWS
FROM vbak
INTO TABLE it_vbak.
LOOP AT it_vbak INTO wa_vbak.
ld_color = ld_color + 1.
IF ld_color = 8.
ld_color = 1.
ENDIF.
CONCATENATE 'C' ld_color '10' INTO wa_vbak-line_color.
MODIFY it_vbak FROM wa_vbak.
ENDLOOP.
ENDFORM. "DATA_RETRIEVAL
&----
*& Form CALL_EVENTS
&----
text
----
&----
*& Form it_sortinfo
&----
text
----
--> p1 text
<-- p2 text
----
FORM it_sortinfo .
it_sortinfo-fieldname = 'ERNAM'.
it_sortinfo-tabname = 'IT_VBAK'.
it_sortinfo-subtot = 'X'.
it_sortinfo-obligatory = 'X'.
it_sortinfo-up = 'X'.
it_sortinfo-spos = '1'.
it_sortinfo-expa = 'X'.
APPEND it_sortinfo.
ENDFORM. " it_sortinfo
12-07-2007 11:10 AM
Hi ,
while building fieldcatlog you mention do_sum = 'X' .
for that particular field to get total .
eg:WA_FIELDCAT-FIELDNAME ='CATSHOURS' . WA_FIELDCAT-TABNAME ='CATSDB' .
WA_FIELDCAT-SELTEXT_L = 'HOURS'.
WA_FIELDCAT-do_sum = 'X' .
12-07-2007 11:11 AM
hi anupav,
just try this simple pgm,
-
REPORT ZGALV_SORT.
TYPE-POOLS : SLIS.
TYPES : BEGIN OF TYP_EMP,
ZEID TYPE ZGEMP_DETAIL1-ZEID,
ZENAM TYPE ZGEMP_DETAIL1-ZENAM,
ZESAL TYPE ZGEMP_DETAIL1-ZESAL,
ZEADD TYPE ZGEMP_DETAIL1-ZEADD,
END OF TYP_EMP.
DATA : IT_EMP TYPE STANDARD TABLE OF ZGEMP_DETAIL1,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GT_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GW_SORT TYPE SLIS_SORTINFO_ALV,
VL_LAYOUT TYPE DISVARIANT.
SELECT ZEID
ZENAM
ZESAL
ZEADD
FROM ZGEMP_DETAIL1
INTO CORRESPONDING FIELDS OF TABLE IT_EMP.
FORM DISPLAY.
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 = 'ZGEMP_DETAIL1'
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT = GT_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = GT_SORT
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A '
IS_VARIANT = VL_LAYOUT
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 = IT_EMP
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.
*DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
START-OF-SELECTION.
VL_LAYOUT-REPORT = SY-REPID.
PERFORM GETSORT.
PERFORM GETLAYOUT.
*PERFORM GETFIELDCAT.
PERFORM DISPLAY.
&----
*& Form GETSORT
&----
text
----
--> p1 text
<-- p2 text
----
FORM GETSORT .
CLEAR GT_SORT.
GW_SORT-FIELDNAME = 'ZEID'.
GW_SORT-SPOS = '1'.
*GW_SORT-TABNAME = '2'.
GW_SORT-UP = 'X'.
*GW_SORT-SUBTOT = 'X'.
APPEND GW_SORT TO GT_SORT.
CLEAR GT_SORT.
GW_SORT-FIELDNAME = 'ZESAL'.
*GW_SORT-SPOS = '1'.
*GW_SORT-TABNAME = '1'.
*GW_SORT-UP = 'X'.
GW_SORT-SUBTOT = 'X'.
APPEND GW_SORT TO GT_SORT.
ENDFORM. " GETSORT
&----
*& Form GETLAYOUT
&----
text
----
--> p1 text
<-- p2 text
----
FORM GETLAYOUT .
GT_LAYOUT-NO_INPUT = 'X'.
GT_LAYOUT-ZEBRA = 'X'.
GT_LAYOUT-NO_HLINE = 'X'.
GT_LAYOUT-WINDOW_TITLEBAR = 'ALV GRID DISPLAY'.
ENDFORM. " GETLAYOUT
&----
*& Form GETFIELDCAT
&----
text
----
--> p1 text
<-- p2 text
----
FORM GETFIELDCAT .
data: v_fieldcat type slis_fieldcat_alv.
data: pos type i value 1.
define field_cat.
clear v_fieldcat.
v_fieldcat-col_pos = pos.
v_fieldcat-fieldname = &1.
v_fieldcat-ref_fieldname = &2.
v_fieldcat-ref_tabname = &3.
v_fieldcat-key = &4.
append v_fieldcat to it_fieldcat.
pos = pos + 1.
end-of-definition.
FIELD_CAT: 'ZEID' 'ZEID' 'ZGEMP_DETAILS' 'X',
'ZENAME' 'ZENAME' 'ZGEMP_DETAILS' 'X',
'ZESAL' 'ZESAL' 'ZGEMP_DETAIL1' 'X',
'ZEADD' 'ZEADD' 'ZGEMP_DETAIL1' SPACE .
ENDFORM. " GETFIELDCATREPORT ZGALV_SORT.
TYPE-POOLS : SLIS.
TYPES : BEGIN OF TYP_EMP,
ZEID TYPE ZGEMP_DETAIL1-ZEID,
ZENAM TYPE ZGEMP_DETAIL1-ZENAM,
ZESAL TYPE ZGEMP_DETAIL1-ZESAL,
ZEADD TYPE ZGEMP_DETAIL1-ZEADD,
END OF TYP_EMP.
DATA : IT_EMP TYPE STANDARD TABLE OF ZGEMP_DETAIL1,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GT_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GW_SORT TYPE SLIS_SORTINFO_ALV,
VL_LAYOUT TYPE DISVARIANT.
SELECT ZEID
ZENAM
ZESAL
ZEADD
FROM ZGEMP_DETAIL1
INTO CORRESPONDING FIELDS OF TABLE IT_EMP.
FORM DISPLAY.
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 = 'ZGEMP_DETAIL1'
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT = GT_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = GT_SORT
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A '
IS_VARIANT = VL_LAYOUT
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 = IT_EMP
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.
*DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
START-OF-SELECTION.
VL_LAYOUT-REPORT = SY-REPID.
PERFORM GETSORT.
PERFORM GETLAYOUT.
*PERFORM GETFIELDCAT.
PERFORM DISPLAY.
&----
*& Form GETSORT
&----
text
----
--> p1 text
<-- p2 text
----
FORM GETSORT .
CLEAR GT_SORT.
GW_SORT-FIELDNAME = 'ZEID'.
GW_SORT-SPOS = '1'.
*GW_SORT-TABNAME = '2'.
GW_SORT-UP = 'X'.
*GW_SORT-SUBTOT = 'X'.
APPEND GW_SORT TO GT_SORT.
CLEAR GT_SORT.
GW_SORT-FIELDNAME = 'ZESAL'.
*GW_SORT-SPOS = '1'.
*GW_SORT-TABNAME = '1'.
*GW_SORT-UP = 'X'.
GW_SORT-SUBTOT = 'X'.
APPEND GW_SORT TO GT_SORT.
ENDFORM. " GETSORT
&----
*& Form GETLAYOUT
&----
text
----
--> p1 text
<-- p2 text
----
FORM GETLAYOUT .
GT_LAYOUT-NO_INPUT = 'X'.
GT_LAYOUT-ZEBRA = 'X'.
GT_LAYOUT-NO_HLINE = 'X'.
GT_LAYOUT-WINDOW_TITLEBAR = 'ALV GRID DISPLAY'.
ENDFORM. " GETLAYOUT
&----
*& Form GETFIELDCAT
&----
text
----
--> p1 text
<-- p2 text
----
FORM GETFIELDCAT .
data: v_fieldcat type slis_fieldcat_alv.
data: pos type i value 1.
define field_cat.
clear v_fieldcat.
v_fieldcat-col_pos = pos.
v_fieldcat-fieldname = &1.
v_fieldcat-ref_fieldname = &2.
v_fieldcat-ref_tabname = &3.
v_fieldcat-key = &4.
append v_fieldcat to it_fieldcat.
pos = pos + 1.
end-of-definition.
FIELD_CAT: 'ZEID' 'ZEID' 'ZGEMP_DETAILS' 'X',
'ZENAME' 'ZENAME' 'ZGEMP_DETAILS' 'X',
'ZESAL' 'ZESAL' 'ZGEMP_DETAIL1' 'X',
'ZEADD' 'ZEADD' 'ZGEMP_DETAIL1' SPACE .
ENDFORM. " GETFIELDCATREPORT ZGALV_SORT.
TYPE-POOLS : SLIS.
TYPES : BEGIN OF TYP_EMP,
ZEID TYPE ZGEMP_DETAIL1-ZEID,
ZENAM TYPE ZGEMP_DETAIL1-ZENAM,
ZESAL TYPE ZGEMP_DETAIL1-ZESAL,
ZEADD TYPE ZGEMP_DETAIL1-ZEADD,
END OF TYP_EMP.
DATA : IT_EMP TYPE STANDARD TABLE OF ZGEMP_DETAIL1,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GT_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GW_SORT TYPE SLIS_SORTINFO_ALV,
VL_LAYOUT TYPE DISVARIANT.
SELECT ZEID
ZENAM
ZESAL
ZEADD
FROM ZGEMP_DETAIL1
INTO CORRESPONDING FIELDS OF TABLE IT_EMP.
FORM DISPLAY.
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 = 'ZGEMP_DETAIL1'
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT = GT_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = GT_SORT
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A '
IS_VARIANT = VL_LAYOUT
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 = IT_EMP
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.
*DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
START-OF-SELECTION.
VL_LAYOUT-REPORT = SY-REPID.
PERFORM GETSORT.
PERFORM GETLAYOUT.
*PERFORM GETFIELDCAT.
PERFORM DISPLAY.
&----
*& Form GETSORT
&----
text
----
--> p1 text
<-- p2 text
----
FORM GETSORT .
CLEAR GT_SORT.
GW_SORT-FIELDNAME = 'ZEID'.
GW_SORT-SPOS = '1'.
*GW_SORT-TABNAME = '2'.
GW_SORT-UP = 'X'.
*GW_SORT-SUBTOT = 'X'.
APPEND GW_SORT TO GT_SORT.
CLEAR GT_SORT.
GW_SORT-FIELDNAME = 'ZESAL'.
*GW_SORT-SPOS = '1'.
*GW_SORT-TABNAME = '1'.
*GW_SORT-UP = 'X'.
GW_SORT-SUBTOT = 'X'.
APPEND GW_SORT TO GT_SORT.
ENDFORM. " GETSORT
&----
*& Form GETLAYOUT
&----
text
----
--> p1 text
<-- p2 text
----
FORM GETLAYOUT .
GT_LAYOUT-NO_INPUT = 'X'.
GT_LAYOUT-ZEBRA = 'X'.
GT_LAYOUT-NO_HLINE = 'X'.
GT_LAYOUT-WINDOW_TITLEBAR = 'ALV GRID DISPLAY'.
ENDFORM. " GETLAYOUT
&----
*& Form GETFIELDCAT
&----
text
----
--> p1 text
<-- p2 text
----
FORM GETFIELDCAT .
data: v_fieldcat type slis_fieldcat_alv.
data: pos type i value 1.
define field_cat.
clear v_fieldcat.
v_fieldcat-col_pos = pos.
v_fieldcat-fieldname = &1.
v_fieldcat-ref_fieldname = &2.
v_fieldcat-ref_tabname = &3.
v_fieldcat-key = &4.
append v_fieldcat to it_fieldcat.
pos = pos + 1.
end-of-definition.
FIELD_CAT: 'ZEID' 'ZEID' 'ZGEMP_DETAILS' 'X',
'ZENAME' 'ZENAME' 'ZGEMP_DETAILS' 'X',
'ZESAL' 'ZESAL' 'ZGEMP_DETAIL1' 'X',
'ZEADD' 'ZEADD' 'ZGEMP_DETAIL1' SPACE .
ENDFORM. " GETFIELDCAT
-
hope u can get now....
Rgds,
guna.