2007 Feb 10 5:30 AM
how to create fieldcatlog?
how to add fields to fieldcatlog?
plz explain clearly with example and comments.
2007 Feb 10 5:34 AM
Hi,
Check the following code.
I used it in my program:
*For Field cat.
SFLD-FIELDNAME = 'SWERK'.
SFLD-SELTEXT_L = 'Division'.
SFLD-OUTPUTLEN = 9.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'MSGRP'.
SFLD-SELTEXT_L = 'Depot'.
SFLD-OUTPUTLEN = 10.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'BEZDT'.
SFLD-SELTEXT_L = 'Date'.
SFLD-OUTPUTLEN = 10.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'EQUNR'.
SFLD-SELTEXT_L = 'Pole No.'.
SFLD-OUTPUTLEN = 16.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'ATFLV1'.
SFLD-SELTEXT_L = 'Size(M)'.
SFLD-OUTPUTLEN = 7.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'PLTXT'.
SFLD-SELTEXT_L = 'Location'.
SFLD-OUTPUTLEN = 30.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'ATWRT2'.
SFLD-SELTEXT_L = 'Authority'.
SFLD-OUTPUTLEN = 16.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'KURZTEXT'.
SFLD-SELTEXT_L = 'Reason for change'.
SFLD-OUTPUTLEN = 17.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'ATFLV3'.
SFLD-SELTEXT_L = 'Wattage(W)'.
SFLD-OUTPUTLEN = 11.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'ATWRT4'.
SFLD-SELTEXT_L = 'Lamp Type'.
SFLD-OUTPUTLEN = 9.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'COMMENTS'.
SFLD-SELTEXT_L = 'Comments'.
SFLD-OUTPUTLEN = 25.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
PERFORM BUILD_LAYOUT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = 'ZRPMSLM'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP'
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 = GD_LAYOUT
IT_FIELDCAT = ITFLD[]
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
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITABMEL1
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.
Hope this helps.
Reward if helpful.
Regards,
Sipra
Hi,
Check the following code.
I used it in my program:
*For Field cat.
SFLD-FIELDNAME = 'SWERK'.
SFLD-SELTEXT_L = 'Division'.
SFLD-OUTPUTLEN = 9.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'MSGRP'.
SFLD-SELTEXT_L = 'Depot'.
SFLD-OUTPUTLEN = 10.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'BEZDT'.
SFLD-SELTEXT_L = 'Date'.
SFLD-OUTPUTLEN = 10.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'EQUNR'.
SFLD-SELTEXT_L = 'Pole No.'.
SFLD-OUTPUTLEN = 16.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'ATFLV1'.
SFLD-SELTEXT_L = 'Size(M)'.
SFLD-OUTPUTLEN = 7.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'PLTXT'.
SFLD-SELTEXT_L = 'Location'.
SFLD-OUTPUTLEN = 30.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'ATWRT2'.
SFLD-SELTEXT_L = 'Authority'.
SFLD-OUTPUTLEN = 16.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'KURZTEXT'.
SFLD-SELTEXT_L = 'Reason for change'.
SFLD-OUTPUTLEN = 17.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'ATFLV3'.
SFLD-SELTEXT_L = 'Wattage(W)'.
SFLD-OUTPUTLEN = 11.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'ATWRT4'.
SFLD-SELTEXT_L = 'Lamp Type'.
SFLD-OUTPUTLEN = 9.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'COMMENTS'.
SFLD-SELTEXT_L = 'Comments'.
SFLD-OUTPUTLEN = 25.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
PERFORM BUILD_LAYOUT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = 'ZRPMSLM'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP'
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 = GD_LAYOUT
IT_FIELDCAT = ITFLD[]
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
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITABMEL1
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.
Hope this helps.
Reward if helpful.
Regards,
Sipra
2007 Feb 10 5:34 AM
Hi,
Check the following code.
I used it in my program:
*For Field cat.
SFLD-FIELDNAME = 'SWERK'.
SFLD-SELTEXT_L = 'Division'.
SFLD-OUTPUTLEN = 9.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'MSGRP'.
SFLD-SELTEXT_L = 'Depot'.
SFLD-OUTPUTLEN = 10.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'BEZDT'.
SFLD-SELTEXT_L = 'Date'.
SFLD-OUTPUTLEN = 10.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'EQUNR'.
SFLD-SELTEXT_L = 'Pole No.'.
SFLD-OUTPUTLEN = 16.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'ATFLV1'.
SFLD-SELTEXT_L = 'Size(M)'.
SFLD-OUTPUTLEN = 7.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'PLTXT'.
SFLD-SELTEXT_L = 'Location'.
SFLD-OUTPUTLEN = 30.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'ATWRT2'.
SFLD-SELTEXT_L = 'Authority'.
SFLD-OUTPUTLEN = 16.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'KURZTEXT'.
SFLD-SELTEXT_L = 'Reason for change'.
SFLD-OUTPUTLEN = 17.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'ATFLV3'.
SFLD-SELTEXT_L = 'Wattage(W)'.
SFLD-OUTPUTLEN = 11.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'ATWRT4'.
SFLD-SELTEXT_L = 'Lamp Type'.
SFLD-OUTPUTLEN = 9.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
SFLD-FIELDNAME = 'COMMENTS'.
SFLD-SELTEXT_L = 'Comments'.
SFLD-OUTPUTLEN = 25.
SFLD-KEY = 'X'.
APPEND SFLD TO ITFLD.
CLEAR SFLD.
PERFORM BUILD_LAYOUT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = 'ZRPMSLM'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP'
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 = GD_LAYOUT
IT_FIELDCAT = ITFLD[]
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
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITABMEL1
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.
Hope this helps.
Reward if helpful.
Regards,
Sipra
2007 Feb 10 5:36 AM
pls go through it
<a href="http://www.sapdevelopment.co.uk/reporting/alv/alv_variousfcat.htm">http://www.sapdevelopment.co.uk/reporting/alv/alv_variousfcat.htm</a>
regards
shiba dutta
2007 Feb 10 5:37 AM
Hi,
Herewith i am sending the ALV REPORT sample coding which is used by fieldcatalogs.
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.
Hope it will helps to u.
Thanks,
Shankar
2007 Feb 13 6:05 AM
2007 Feb 10 5:57 AM
FIELDCATALOG
To prepare field catalog certain fields are essential .There are various other fields allowing for vaarious possibilities and display options.
TABNAME
FIELDNAME
REF_TABNAME
SELTECT_M
e.g.
DATA: WS_FCAT TYPE SLIS_FIELDCAT_ALV . "LINE ITEM OF FCAT
DATA: IN_FCAT TYPE SLIS_T_FIELDCAT_ALV.
WS_FCAT-TABNAME = 'MARA'.
WS_FCAT-FIELDNAME = 'MATNR'.
WS_FCAT-SELTEXT_M = 'Material Number'.
APPEND WS_FCAT TO IN_FCAT .
CLEAR WS_FCAT.
WS_FCAT-TABNAME = 'MAKT'.
WS_FCAT-FIELDNAME = 'MAKTX'.
WS_FCAT-SELTEXT_M = 'Material Description'.
APPEND WS_FCAT TO IN_FCAT .
This will create fieldcatalog with two columns for displaying material and material description .
RESUSE_ALV_LIST_DISPLAY.
The following FM is used to display the data in the internal table in the form of ALV
LIST. The Event table is only required if event handling is being done.
CALL FUNCTION 'RESUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID "of TYPE SY-REPID and
" value SY-REPID
IS_LAYOUT = W_LAYOUT "of TYPE SLIS_LAYOUT_ALV
IT_FIELDCAT = IN_FCAT "of TYPE SLIS_T_FIELDCAT_ALV
I_SAVE = W_SAVE "of TYPE C ,values A ,U ,' '
IT_EVENTS = IN_EVENTS " of TYPE SLIS_T_EVENT
TABLES
T_OUTTAB = IN_DATA "internal table conatining data
"corresponding to IN_FCAT
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC NE 0.
MESSAGE ENNN .
ENDIF.
<b>Various ways to build a Fieldcatalog</b>
http://www.sapdevelopment.co.uk/reporting/alv/alv_variousfcat.htm
<b>ALV grid display (inc. column total)</b>
http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_basic.htm
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |