01-08-2008 2:40 PM
Hi
I need to display an icon in alv grid display, can any one give me the sample code (I am using resue alv grid display)
Thanks
saikar
01-08-2008 2:44 PM
hi karthik,
1) To get access to the icons insert the following statement in the top of the program:
TYPE-POOLS: icon.
example:
declare an include <icon>
in final table with which you display ALV
have a field ad icon like icon-id.
and these constant values..
For green light
c_green like icon-id value '@08@',
For Yellow light
c_yellow like icon-id value '@09@',
For red light
c_red like icon-id value '@0A@'.
for change u can use red or green or yellow lights..
plz reward points if helpful..
01-08-2008 2:45 PM
01-08-2008 2:52 PM
following SAP standard program may help you to solve your problem.
BCALV_FULLSCREEN_DEMO
Regards,
Gopi,
Reward points if helpfull.
01-08-2008 2:57 PM
REPORT ZALV .
INCLUDE <ICON>.
TYPE-POOLS: SLIS.
DATA: BEGIN OF IT_VBAK OCCURS 0,
BOX(1) TYPE C,
LIGHT(1) TYPE C,
VBELN TYPE VBAK-VBELN,
AUDAT TYPE VBAK-AUDAT,
AUART TYPE VBAK-AUART,
NETWR TYPE VBAK-NETWR,
WAERK TYPE VBAK-WAERK,
VKORG TYPE VBAK-VKORG,
ICON(20) TYPE C,
END OF IT_VBAK.
DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_CAT TYPE SLIS_FIELDCAT_ALV,
T_EVENT TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT,
T_LIST TYPE SLIS_T_LISTHEADER,
WA_LIST TYPE SLIS_LISTHEADER,
WS_LAYOUT TYPE SLIS_LAYOUT_ALV,
T_SORT TYPE SLIS_T_SORTINFO_ALV,
WA_SORT TYPE SLIS_SORTINFO_ALV.
DATA PROG LIKE SY-REPID.
SELECT-OPTIONS: S_VBELN FOR IT_VBAK-VBELN.
SELECT VBELN AUDAT AUART NETWR WAERK VKORG FROM VBAK
INTO CORRESPONDING FIELDS OF TABLE IT_VBAK
WHERE VBELN IN S_VBELN.
LOOP AT IT_VBAK.
IF SY-TABIX < 10.
IT_VBAK-LIGHT = '1'.
IT_VBAK-BOX = 'X'.
IT_VBAK-ICON = ICON_OKAY.
ELSE.
IT_VBAK-LIGHT = '3'.
IT_VBAK-BOX = ' '.
IT_VBAK-ICON = ICON_CANCEL.
ENDIF.
MODIFY IT_VBAK INDEX SY-TABIX TRANSPORTING LIGHT BOX ICON.
ENDLOOP.
PERFORM POPULATE_FIELDCAT USING:
'IT_VBAK' 'BOX' ' ' ' ' ' ' ' ' ' ',
'IT_VBAK' 'LIGHT' '01' 'LIGHT' ' ' ' ' ' ',
'IT_VBAK' 'VBELN' '01' 'SALES_ORDER' 'X' 'X' ' ' ' ',
'IT_VBAK' 'AUDAT' '02' 'SD_DATE' ' ' 'C200' ' ' ' ',
'IT_VBAK' 'AUART' '03' 'SD_TYPE' ' ' 'C600' ' ' ' ',
'IT_VBAK' 'NETWR' '04' 'SD_VALUE' ' ' 'C310' 'X' ' ',
'IT_VBAK' 'WAERK' '06' 'SD_CURRENCY' ' ' 'C301' ' ' ' ',
'IT_VBAK' 'VKORG' '05' 'SD_ORG' ' ' 'C311' ' ' ' ',
'IT_VBAK' 'ICON' '07' 'ICON' ' ' ' ' ' ' 'X'.
PERFORM POPULATE_EVENT.
PERFORM POPULATE_HEADER.
WS_LAYOUT-ZEBRA = 'X'.
WS_LAYOUT-KEY_HOTSPOT = 'X'.
WS_LAYOUT-LIGHTS_FIELDNAME = 'LIGHT'.
WS_LAYOUT-BOX_FIELDNAME = 'BOX'.
*WS_LAYOUT-F2CODE = '&IC1'. " '&ETA' CAN BE USED
PROG = SY-REPID.
WA_SORT-FIELDNAME = 'AUDAT'.
WA_SORT-UP = ' '.
WA_SORT-DOWN = 'X'.
WA_SORT-SPOS = 1.
WA_SORT-SUBTOT = 'X'.
APPEND WA_SORT TO T_SORT.
CLEAR WA_SORT.
WA_SORT-FIELDNAME = 'NETWR'.
WA_SORT-UP = 'X'.
WA_SORT-DOWN = ' '.
WA_SORT-SPOS = 2.
APPEND WA_SORT TO T_SORT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = PROG
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_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT = WS_LAYOUT
IT_FIELDCAT = FLDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = T_SORT
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = T_EVENT
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_VBAK
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 POPULATE_FIELDCAT
&----
text
----
-->P_0070 text
-->P_0071 text
-->P_0072 text
-->P_0073 text
-->P_0074 text
----
FORM POPULATE_FIELDCAT USING TAB FLD COL TXT KEY CLR SUM ICN.
CLEAR WA_CAT.
WA_CAT-TABNAME = TAB.
WA_CAT-FIELDNAME = FLD.
WA_CAT-COL_POS = COL.
WA_CAT-REPTEXT_DDIC = TXT.
WA_CAT-KEY = KEY.
WA_CAT-JUST = 'C'.
WA_CAT-OUTPUTLEN = 10.
*WA_CAT-EMPHASIZE = CLR.
WA_CAT-DO_SUM = SUM.
WA_CAT-ICON = ICN.
APPEND WA_CAT TO FLDCAT.
ENDFORM. " POPULATE_FIELDCAT
&----
*& Form POPULATE_EVENT
&----
text
----
--> p1 text
<-- p2 text
----
FORM POPULATE_EVENT .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = T_EVENT
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE T_EVENT INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
WA_EVENT-FORM = 'TOP_PAGE'.
MODIFY T_EVENT INDEX SY-TABIX FROM WA_EVENT TRANSPORTING FORM.
READ TABLE T_EVENT INTO WA_EVENT WITH KEY NAME = 'PF_STATUS_SET'.
WA_EVENT-FORM = 'PF_SET'.
MODIFY T_EVENT INDEX SY-TABIX FROM WA_EVENT TRANSPORTING FORM.
READ TABLE T_EVENT INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY T_EVENT INDEX SY-TABIX FROM WA_EVENT TRANSPORTING FORM.
ENDFORM. " POPULATE_EVENT
&----
*& Form POPULATE_HEADER
&----
text
----
--> p1 text
<-- p2 text
----
FORM POPULATE_HEADER .
CLEAR WA_LIST.
WA_LIST-TYP = 'H'.
WA_LIST-INFO = 'TOP OF PAGE'.
APPEND WA_LIST TO T_LIST.
WA_LIST-TYP = 'S'.
WA_LIST-KEY = 'NAME'.
WA_LIST-INFO = SY-REPID.
APPEND WA_LIST TO T_LIST.
ENDFORM. " POPULATE_HEADER
FORM TOP_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_LIST
I_LOGO =
I_END_OF_LIST_GRID =
.
ENDFORM.
FORM PF_SET USING T_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'ALV_TEST'.
ENDFORM.
FORM USER_COMMAND USING UCOMM LIKE SY-UCOMM FLD TYPE SLIS_SELFIELD.
DATA: BEGIN OF T_SEL OCCURS 0,
VBELN TYPE VBAK-VBELN,
AUDAT TYPE VBAK-AUDAT,
NETWR TYPE VBAK-NETWR,
WAERK TYPE VBAK-WAERK,
END OF T_SEL.
DATA: V_VBELN TYPE VBAK-VBELN,
T_SEL_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_SEL_FLDCAT TYPE SLIS_FIELDCAT_ALV..
IF FLD-SEL_TAB_FIELD = 'IT_VBAK-VBELN'.
SET PARAMETER ID 'AUN' FIELD FLD-VALUE.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
V_VBELN = FLD-VALUE.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = V_VBELN
IMPORTING
OUTPUT = V_VBELN
.
REFRESH T_SEL.
LOOP AT IT_VBAK WHERE VBELN = V_VBELN.
T_SEL-VBELN = IT_VBAK-VBELN.
T_SEL-AUDAT = IT_VBAK-AUDAT.
T_SEL-NETWR = IT_VBAK-NETWR.
T_SEL-WAERK = IT_VBAK-WAERK.
APPEND T_SEL.
ENDLOOP.
CLEAR WA_SEL_FLDCAT.
WA_SEL_FLDCAT-TABNAME = 'T_SEL'.
WA_SEL_FLDCAT-FIELDNAME = 'VBELN'.
WA_SEL_FLDCAT-KEY = 'X'.
WA_SEL_FLDCAT-REPTEXT_DDIC = 'DOC NO.'.
APPEND WA_SEL_FLDCAT TO T_SEL_FLDCAT.
CLEAR WA_SEL_FLDCAT.
WA_SEL_FLDCAT-TABNAME = 'T_SEL'.
WA_SEL_FLDCAT-FIELDNAME = 'AUDAT'.
WA_SEL_FLDCAT-KEY = ' '.
WA_SEL_FLDCAT-REPTEXT_DDIC = 'DOC DATE.'.
APPEND WA_SEL_FLDCAT TO T_SEL_FLDCAT.
CLEAR WA_SEL_FLDCAT.
WA_SEL_FLDCAT-TABNAME = 'T_SEL'.
WA_SEL_FLDCAT-FIELDNAME = 'NETWR'.
WA_SEL_FLDCAT-KEY = ' '.
WA_SEL_FLDCAT-REPTEXT_DDIC = 'NET VAL'.
APPEND WA_SEL_FLDCAT TO T_SEL_FLDCAT.
CLEAR WA_SEL_FLDCAT.
WA_SEL_FLDCAT-TABNAME = 'T_SEL'.
WA_SEL_FLDCAT-FIELDNAME = 'WAERK'.
WA_SEL_FLDCAT-KEY = ' '.
WA_SEL_FLDCAT-REPTEXT_DDIC = 'CURR'.
APPEND WA_SEL_FLDCAT TO T_SEL_FLDCAT.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
I_TITLE =
I_SELECTION = 'X'
I_ALLOW_NO_SELECTION =
I_ZEBRA = 'X'
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_CHECKBOX_FIELDNAME =
I_LINEMARK_FIELDNAME =
I_SCROLL_TO_SEL_LINE = 'X'
I_TABNAME = 'T_SEL'
I_STRUCTURE_NAME =
IT_FIELDCAT = T_SEL_FLDCAT
IT_EXCLUDING =
I_CALLBACK_PROGRAM =
I_CALLBACK_USER_COMMAND =
IS_PRIVATE =
IMPORTING
ES_SELFIELD =
E_EXIT =
TABLES
T_OUTTAB = T_SEL
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.
ENDIF.
ENDFORM.
Reward if useful
Regards
ANUPAM
01-08-2008 6:05 PM
Hi,
Please refer to standard program BCALV_GRID_04.
Thanks,
Sriram Ponna.