04-23-2007 10:04 AM
Is there any possibility to display color on subtotals as it generated dynamically in alv.
FM used : reuse_alv_grid_display..
1. i am calculating the threshold quantity of shipped quantities for 12 months
and populating it for customer material combination.
2. for every customer material combination it displays the threshold quantity
3. I am populating the shipped quantity by month wise for that customer and material combination
.
4. Requirement is to check the shipped quantity and threshold quantity for the
customer material combination , if the monthly shipped quantity is greater than
threshold quantity then color is to be displayed on that subtotals as the end user
identify easily.
Can u Please reply logic to check this .
Thanks in advance.
Rao
04-23-2007 10:08 AM
Hai,
<b>See the below program for ALV color:</b>
TYPE-POOLS: SLIS.
PARAMETERS:
P_ROW TYPE I,
P_COLUMN TYPE I.
DATA:
FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
FIELDCAT_LN LIKE LINE OF FIELDCAT,
SORTCAT TYPE SLIS_T_SORTINFO_ALV,
SORTCAT_LN LIKE LINE OF SORTCAT,
EVENTCAT TYPE SLIS_T_EVENT,
EVENTCAT_LN LIKE LINE OF EVENTCAT.
DATA:
COL_POS TYPE I.
******Declare Data Areas for List Viewer (End)**************
******Declare Internal Table to Store Selected Data (Begin)*
DATA:
BEGIN OF ISPFLI OCCURS 0,
CHECK TYPE SLIS_FIELDNAME,
R_COLOR(3) TYPE C,
CELL TYPE SLIS_T_SPECIALCOL_ALV,
CARRID LIKE SPFLI-CARRID,
CONNID LIKE SPFLI-CONNID,
COUNTRYFR LIKE SPFLI-COUNTRYFR,
END OF ISPFLI.
DATA:
WA LIKE LINE OF ISPFLI,
W_LINES TYPE I.
DATA:
FS_CELL LIKE LINE OF ISPFLI-CELL.
DATA:
LAYOUT1 TYPE SLIS_LAYOUT_ALV.
******Declare Internal Table to Store Selected Data (End)***
*******Select Data into Internal Table (Begin) ***************
SELECT CARRID CONNID COUNTRYFR
INTO CORRESPONDING FIELDS OF TABLE ISPFLI
FROM SPFLI.
DESCRIBE TABLE ISPFLI LINES W_LINES.
IF P_ROW IS INITIAL AND
P_COLUMN IS INITIAL .
MESSAGE 'Enter atlest one number' TYPE 'I'.
STOP.
ELSEIF P_ROW GT W_LINES.
MESSAGE 'Row with the row number is not there' TYPE 'I'.
STOP.
ENDIF.
IF P_COLUMN IS NOT INITIAL AND
P_COLUMN GT 3.
MESSAGE 'Field with the column number is not there' TYPE 'I'.
STOP.
ENDIF.
Select Data into Internal Table (End) ****************
Build Field Catalogs (Begin)**************************
IF P_ROW IS NOT INITIAL AND P_COLUMN IS INITIAL.
PERFORM BUILD_FIELDCAT.
PERFORM BUILD_FIELDCAT2.
PERFORM BUILD_FIELDCAT4.
PERFORM BUILD_LAYOUT1.
PERFORM ROW_COLOR.
ELSEIF P_COLUMN IS NOT INITIAL
AND P_ROW IS NOT INITIAL.
PERFORM BUILD_FIELDCAT.
PERFORM BUILD_FIELDCAT2.
PERFORM BUILD_FIELDCAT4.
PERFORM BUILD_LAYOUT1.
PERFORM CELL_COLOR.
ELSE.
PERFORM BUILD_FIELDCAT.
PERFORM BUILD_FIELDCAT2.
PERFORM BUILD_FIELDCAT3.
PERFORM BUILD_LAYOUT1.
ENDIF.
PERFORM ROW_COLOR.
PERFORM CELL_COLOR.
PERFORM BUILD_FIELDCAT.
PERFORM BUILD_FIELDCAT2.
PERFORM BUILD_FIELDCAT3.
PERFORM BUILD_LAYOUT1.
PERFORM ROW_COLOR.
PERFORM CELL_COLOR.
PERFORM ROW_COLOR.
PERFORM CELL_COLOR.
PERFORM BUILD_SORTCAT.
PERFORM BUILD_SORTCAT2.
******Build Field Catalogs (End)*****************************
******Build Event Catalog (Begin)****************************
PERFORM BUILD_EVENTCAT.
******Build Event Catalog (End)******************************
******Start List Viewer (Begin)******************************
PERFORM START_LIST_VIEWER.
******Start List Viewer (End)********************************
***************************************************************
***************************************************************
********FORM ROUTINES (Begin)********************************
FORM ROW_COLOR.
CLEAR WA.
READ TABLE ISPFLI INDEX P_ROW INTO WA.
WA-R_COLOR = 'C61'.
MODIFY ISPFLI FROM WA INDEX P_ROW.
CLEAR WA.
ENDFORM.
FORM CELL_COLOR.
CLEAR WA.
CLEAR FS_CELL.
FS_CELL-FIELDNAME = 'CONNID'.
FS_CELL-COLOR-COL = P_COLUMN."4.
FS_CELL-COLOR-INT = 0.
FS_CELL-COLOR-INV = 1.
READ TABLE ISPFLI INDEX P_ROW INTO WA.
APPEND FS_CELL TO WA-CELL.
MODIFY ISPFLI FROM WA INDEX P_ROW TRANSPORTING CELL.
CLEAR WA.
CLEAR FS_CELL.
ENDFORM.
Color table-FIELDNAME = field name of the cell to be colored
Color table-COLOR-COL = color number (1 - 9)
Color table-COLOR-INT = bold (0 = off, 1 = on)
Color table-COLOR-INV = inverse (0 = off, 1 = on)
Color table-NOKEYCOL = ignore key coloring ('X' = yes, ' ' = no)
FORM BUILD_FIELDCAT.
CLEAR FIELDCAT_LN.
ADD 1 TO COL_POS.
FIELDCAT_LN-REF_TABNAME = 'SPFLI'.
FIELDCAT_LN-FIELDNAME = 'CARRID'.
FIELDCAT_LN-REF_FIELDNAME = SPACE.
FIELDCAT_LN-OUTPUTLEN = 20.
FIELDCAT_LN-KEY = 'X'.
FIELDCAT_LN-NO_OUT = 'X'."SPACE.
FIELDCAT_LN-DO_SUM = SPACE.
FIELDCAT_LN-COL_POS = 2.
FIELDCAT_LN-NO_OUT = SPACE.
FIELDCAT_LN-QFIELDNAME = SPACE.
FIELDCAT_LN-HOTSPOT = 'X'.
APPEND FIELDCAT_LN TO FIELDCAT.
ENDFORM. "BUILD_FIELDCAT
&----
*& Form BUILD_FIELDCAT2
&----
text
----
FORM BUILD_FIELDCAT2.
CLEAR FIELDCAT_LN.
ADD 1 TO COL_POS.
FIELDCAT_LN-REF_TABNAME = 'SPFLI'.
FIELDCAT_LN-FIELDNAME = 'CONNID'.
FIELDCAT_LN-REF_FIELDNAME = SPACE.
FIELDCAT_LN-OUTPUTLEN = 20.
FIELDCAT_LN-KEY = 'X'.
FIELDCAT_LN-DO_SUM = SPACE.
FIELDCAT_LN-COL_POS = 1.
FIELDCAT_LN-NO_OUT = SPACE .
FIELDCAT_LN-QFIELDNAME = SPACE.
FIELDCAT_LN-HOTSPOT = SPACE.
APPEND FIELDCAT_LN TO FIELDCAT.
ENDFORM. "BUILD_FIELDCAT2
&----
*& Form BUILD_FIELDCAT3
&----
text
----
FORM BUILD_FIELDCAT3.
CLEAR FIELDCAT_LN.
ADD 1 TO COL_POS.
FIELDCAT_LN-REF_TABNAME = 'SPFLI'.
FIELDCAT_LN-FIELDNAME = 'COUNTRYFR'.
FIELDCAT_LN-REF_FIELDNAME = SPACE.
FIELDCAT_LN-OUTPUTLEN = 20.
FIELDCAT_LN-EMPHASIZE = 'C310'.
FIELDCAT_LN-EMPHASIZE = 'X'.
FIELDCAT_LN-EMPHASIZE = SPACE.
FIELDCAT_LN-KEY = SPACE.
FIELDCAT_LN-DO_SUM = 'X'.
FIELDCAT_LN-COL_POS = 3.
FIELDCAT_LN-NO_OUT = SPACE.
FIELDCAT_LN-QFIELDNAME = SPACE.
FIELDCAT_LN-HOTSPOT = SPACE.
APPEND FIELDCAT_LN TO FIELDCAT.
ENDFORM. "BUILD_FIELDCAT3
FORM BUILD_FIELDCAT4.
CLEAR FIELDCAT_LN.
ADD 1 TO COL_POS.
FIELDCAT_LN-REF_TABNAME = 'SPFLI'.
FIELDCAT_LN-FIELDNAME = 'COUNTRYFR'.
FIELDCAT_LN-REF_FIELDNAME = SPACE.
FIELDCAT_LN-OUTPUTLEN = 20.
FIELDCAT_LN-EMPHASIZE = 'C310'.
FIELDCAT_LN-EMPHASIZE = 'X'.
FIELDCAT_LN-EMPHASIZE = SPACE.
FIELDCAT_LN-KEY = SPACE.
FIELDCAT_LN-DO_SUM = 'X'.
FIELDCAT_LN-COL_POS = 3.
FIELDCAT_LN-NO_OUT = SPACE.
FIELDCAT_LN-QFIELDNAME = SPACE.
FIELDCAT_LN-HOTSPOT = SPACE.
APPEND FIELDCAT_LN TO FIELDCAT.
ENDFORM. "BUILD_FIELDCAT3
&----
*& Form BUILD_SORTCAT
&----
text
----
FORM BUILD_SORTCAT.
CLEAR SORTCAT_LN.
SORTCAT_LN-SPOS = '1'.
SORTCAT_LN-FIELDNAME = 'CONNID'.
SORTCAT_LN-UP = 'X'..
SORTCAT_LN-DOWN = SPACE.
SORTCAT_LN-SUBTOT = 'X'.
APPEND SORTCAT_LN TO SORTCAT.
ENDFORM. "BUILD_SORTCAT
&----
*& Form BUILD_SORTCAT2
&----
text
----
FORM BUILD_SORTCAT2.
CLEAR SORTCAT_LN.
SORTCAT_LN-SPOS = '2'.
SORTCAT_LN-FIELDNAME = 'CARRID'.
SORTCAT_LN-UP = SPACE.
SORTCAT_LN-DOWN = 'X'.
SORTCAT_LN-SUBTOT = SPACE.
APPEND SORTCAT_LN TO SORTCAT.
ENDFORM. " BUILD_SORTCAT2
FORM BUILD_LAYOUT1.
LAYOUT1-BOX_FIELDNAME = 'CHECK'.
LAYOUT1-INFO_FIELDNAME = 'R_COLOR'.
LAYOUT1-COLTAB_FIELDNAME = 'CELL'.
ENDFORM. " BUILD_LAYOUT1
&----
*& Form BUILD_EVENTCAT
&----
text
----
FORM BUILD_EVENTCAT.
EVENTCAT_LN-NAME = 'TOP_OF_PAGE'.
EVENTCAT_LN-FORM = 'PAGE_HEADER'.
APPEND EVENTCAT_LN TO EVENTCAT.
ENDFORM. "BUILD_EVENTCAT
&----
*& Form START_LIST_VIEWER
&----
text
----
FORM START_LIST_VIEWER.
DATA: PGM LIKE SY-REPID.
PGM = SY-REPID.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = PGM
i_callback_pf_status_set = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_STRUCTURE_NAME =
IS_LAYOUT = LAYOUT1
IT_FIELDCAT = FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = SORTCAT
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT = ' '
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
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 = ISPFLI
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM. "START_LIST_VIEWER
Hope you got it.
<b>Reward points if it helps you.</b>
Regds,
Rama chary.Pammi