webdynpro alv traffic light color function
TRANSCRIPT
BANDIS
TECHNOLO
GY
1 WEBDYNPRO ABAP/FPM/WEBDYNPRO CHIPS / BRF+ WITH OOPS &
ADVANCED OOPS
BANDIS TECHNOLOGY :040-64608866 , 9030098866
METHOD WDDOINIT .
*Instnatiate the SALV component
DATA LO_CMP_USAGE TYPE REF TO IF_WD_COMPONENT_USAGE.
LO_CMP_USAGE = WD_THIS->WD_CPUSE_ALV( ).
IF LO_CMP_USAGE->HAS_ACTIVE_COMPONENT( ) IS INITIAL.
LO_CMP_USAGE->CREATE_COMPONENT( ).
ENDIF.
* Call the interface controller method GET_MODEL
*to get the ALV configuration model CL_SALV_WD_CONFIG_TABLE
DATA LO_INTERFACECONTROLLER TYPE REF TO IWCI_SALV_WD_TABLE .
SRINIVASULU BANDI
BANDIS
TECHNOLO
GY
2 WEBDYNPRO ABAP/FPM/WEBDYNPRO CHIPS / BRF+ WITH OOPS &
ADVANCED OOPS
BANDIS TECHNOLOGY :040-64608866 , 9030098866
LO_INTERFACECONTROLLER = WD_THIS->WD_CPIFC_ALV( ).
DATA LV_VALUE TYPE REF TO CL_SALV_WD_CONFIG_TABLE.
LV_VALUE = LO_INTERFACECONTROLLER->GET_MODEL(
).
*. Get the corresponding colomn settings by using method
*GET_COLUMN of IF_SALV_WD_COLUMN_SETTINGS
DATA LR_COLUMN TYPE REF TO CL_SALV_WD_COLUMN.
LR_COLUMN = LV_VALUE->IF_SALV_WD_COLUMN_SETTINGS~GET_COLUMN( 'NETPR' ).
*4. Set the color to the column using method SET_CELL_DESIGN_FIELDNAME
LR_COLUMN->SET_CELL_DESIGN_FIELDNAME( 'COLOR' ).
*Delete the COLOR Column From ALV Output
LV_VALUE->IF_SALV_WD_COLUMN_SETTINGS~DELETE_COLUMN( 'COLOR' ).
DATA LO_ND_VBAP TYPE REF TO IF_WD_CONTEXT_NODE.
DATA LS_VBAP TYPE WD_THIS->ELEMENT_VBAP.
DATA LT_VBAP TYPE WD_THIS->ELEMENTS_VBAP.
* navigate from <CONTEXT> to <VBAP> via lead selection
LO_ND_VBAP = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_VBAP ).
* @TODO handle non existant child
* IF lo_nd_vbap IS INITIAL.
* ENDIF.
* * @TODO compute values
* * e.g. call a model function
SRINIVASULU BANDI
BANDIS
TECHNOLO
GY
3 WEBDYNPRO ABAP/FPM/WEBDYNPRO CHIPS / BRF+ WITH OOPS &
ADVANCED OOPS
BANDIS TECHNOLOGY :040-64608866 , 9030098866
SELECT *
FROM VBAP
INTO CORRESPONDING FIELDS OF TABLE LT_VBAP
UP TO 10 ROWS.
IF SY-SUBRC IS INITIAL.
LOOP AT LT_VBAP INTO LS_VBAP.
IF LS_VBAP-NETPR GT '1500'.
LS_VBAP-COLOR = CL_WD_TABLE_COLUMN=>E_CELL_DESIGN-NEGATIVE.
LS_VBAP-TRAFFIC = ICON_RED_LIGHT.
ELSE.
LS_VBAP-COLOR = CL_WD_TABLE_COLUMN=>E_CELL_DESIGN-POSITIVE.
LS_VBAP-TRAFFIC = ICON_GREEN_LIGHT.
ENDIF.
MODIFY LT_VBAP FROM LS_VBAP TRANSPORTING COLOR TRAFFIC.
ENDLOOP.
ENDIF.
*provinding images to a ALV Table Column
DATA : LR_IMAGE TYPE REF TO CL_SALV_WD_UIE_IMAGE.
CREATE OBJECT LR_IMAGE.
*4. Set the fieldname realted to the image using method SET_SOURCE_FIELDNAME
LR_IMAGE->SET_SOURCE_FIELDNAME( 'TRAFFIC' ).
*5. Get the column instance for which the cell editor should be changed
*from TEXTVIEW to IMAGE
LR_COLUMN = LV_VALUE->IF_SALV_WD_COLUMN_SETTINGS~GET_COLUMN( 'TRAFFIC' ).
*6. Set the CEll Editor as image
LR_COLUMN->SET_CELL_EDITOR( LR_IMAGE ).
DATA LR_HEADER TYPE REF TO CL_SALV_WD_COLUMN_HEADER.
LR_HEADER = LR_COLUMN->CREATE_HEADER( ).
LR_HEADER->SET_TEXT( 'Exception' ).
*Change the Column VBELN as Button
* 1. First instantiate the class realted to button .
DATA LR_BUTTON TYPE REF TO CL_SALV_WD_UIE_BUTTON.
SRINIVASULU BANDI
BANDIS
TECHNOLO
GY
4 WEBDYNPRO ABAP/FPM/WEBDYNPRO CHIPS / BRF+ WITH OOPS &
ADVANCED OOPS
BANDIS TECHNOLOGY :040-64608866 , 9030098866
CREATE OBJECT LR_BUTTON.
*2. Get the corresponding column instance
LR_COLUMN = LV_VALUE->IF_SALV_WD_COLUMN_SETTINGS~GET_COLUMN( 'VBELN' ).
LR_BUTTON->SET_TEXT_FIELDNAME( 'VBELN' ).
LR_COLUMN->SET_CELL_EDITOR( LR_BUTTON ).
*aDD A dELETE BUTTON ON alv toolbar
DATA LR_BUTTON1 TYPE REF TO CL_SALV_WD_FE_BUTTON.
CREATE OBJECT LR_BUTTON1.
* lr_button1->set_text( 'DELETE' ).
LR_BUTTON1->SET_IMAGE_SOURCE( '@11@' ).
DATA LR_FUNCTION TYPE REF TO CL_SALV_WD_FUNCTION.
****************************************************************
*GRAND TOTAL
*1. First get the instace of that field using method GET_FIELD
*
LV_VALUE->IF_SALV_WD_FIELD_SETTINGS~GET_FIELD( 'NETPR'
)->IF_SALV_WD_AGGR~CREATE_AGGR_RULE( ).
LV_VALUE->IF_SALV_WD_FIELD_SETTINGS~GET_FIELD( 'VBELN'
)->IF_SALV_WD_SORT~CREATE_SORT_RULE( GROUP_AGGREGATION = ABAP_TRUE ).
DATA LR_INPUT TYPE REF TO CL_SALV_WD_UIE_INPUT_FIELD.
CREATE OBJECT LR_INPUT
EXPORTING
VALUE_FIELDNAME = 'MATNR'.
LR_INPUT->SET_READ_ONLY( ABAP_FALSE ).
LV_VALUE->IF_SALV_WD_COLUMN_SETTINGS~GET_COLUMN( 'MATNR'
)->SET_CELL_EDITOR( LR_INPUT ).
LV_VALUE->IF_SALV_WD_TABLE_SETTINGS~SET_READ_ONLY( ABAP_FALSE ).
SRINIVASULU BANDI
BANDIS
TECHNOLO
GY
5 WEBDYNPRO ABAP/FPM/WEBDYNPRO CHIPS / BRF+ WITH OOPS &
ADVANCED OOPS
BANDIS TECHNOLOGY :040-64608866 , 9030098866
LR_FUNCTION = LV_VALUE-
>IF_SALV_WD_FUNCTION_SETTINGS~CREATE_FUNCTION( 'TOOLBAR' ).
LR_FUNCTION->SET_EDITOR( LR_BUTTON1 ).
LO_ND_VBAP-
>BIND_TABLE( NEW_ITEMS = LT_VBAP SET_INITIAL_ELEMENTS = ABAP_FALSE ).
ENDMETHOD.
SRINIVASULU BANDI