You are on page 1of 2

DATA: LR_TABLE TYPE REF TO CL_SALV_TABLE,

LR_FUNCTIONS TYPE REF TO CL_SALV_FUNCTIONS_LIST,


LR_DISPLAY TYPE REF TO CL_SALV_DISPLAY_SETTINGS,
LR_COLUMNS TYPE REF TO CL_SALV_COLUMNS_TABLE,
LR_COLUMN TYPE REF TO CL_SALV_COLUMN,
LR_SORTS TYPE REF TO CL_SALV_SORTS,
LR_LAYOUT TYPE REF TO CL_SALV_LAYOUT,
LS_COLOR TYPE LVC_S_COLO,
LS_KEY TYPE SALV_S_LAYOUT_KEY,
LV_TITLE TYPE LVC_TITLE,
LV_NBRLINES TYPE I,
LV_TEXT TYPE C LENGTH 25,
LR_STR_DESC TYPE REF TO CL_ABAP_STRUCTDESCR,
LS_DDREF TYPE SALV_S_DDIC_REFERENCE.

FIELD-SYMBOLS: <STR_COMP> TYPE ABAP_COMPDESCR.

CHECK GIT_DATES IS NOT INITIAL.

DESCRIBE TABLE GIT_DATES LINES LV_NBRLINES.

* Setup title
CASE 'X'.
WHEN P_UPD. LV_TEXT = 'Load Dates'(002).
WHEN P_CLR. LV_TEXT = 'Clear Dates'(003).
WHEN P_DEL. LV_TEXT = 'Delete Entries'(004).
WHEN P_MSS. LV_TEXT = 'Delete Invalid Orders'(007).
ENDCASE.

CONCATENATE SY-TITLE '-' LV_TEXT INTO LV_TITLE SEPARATED BY ''.


CLEAR LV_TEXT.
WRITE LV_NBRLINES TO LV_TEXT. SHIFT LV_TEXT LEFT DELETING LEADING SPACE.
CONCATENATE LV_TITLE '-' LV_TEXT 'Entries'(012) INTO LV_TITLE SEPARATED BY ''.
CLEAR LV_TEXT.
IF P_TEST EQ 'X'.
CONCATENATE LV_TITLE '(Test)'(006) INTO LV_TITLE SEPARATED BY ''.
ENDIF.

TRY.
* Get new instance of ALV table object
CL_SALV_TABLE=>FACTORY( IMPORTING R_SALV_TABLE = LR_TABLE CHANGING T_TABLE =
GIT_DATES[] ).

* Functions
LR_FUNCTIONS = LR_TABLE->GET_FUNCTIONS( ).
LR_FUNCTIONS->SET_DEFAULT( ABAP_TRUE ).

* Display settings
LR_DISPLAY = LR_TABLE->GET_DISPLAY_SETTINGS( ).
LR_DISPLAY->SET_STRIPED_PATTERN( CL_SALV_DISPLAY_SETTINGS=>TRUE ).
LR_DISPLAY->SET_LIST_HEADER( LV_TITLE ).

* Column settings
LR_COLUMNS = LR_TABLE->GET_COLUMNS( ).
LR_COLUMNS->SET_OPTIMIZE( ABAP_TRUE ).

* Layout
LR_LAYOUT = LR_TABLE->GET_LAYOUT( ).
LS_KEY-REPORT = SY-REPID.
LR_LAYOUT->SET_KEY( LS_KEY ).
LR_LAYOUT->SET_SAVE_RESTRICTION( CL_SALV_LAYOUT=>RESTRICT_NONE ).

* Display ALV grid


LR_TABLE->DISPLAY( ).
CATCH CX_SALV_MSG.
CATCH CX_SALV_DATA_ERROR.
CATCH CX_SALV_EXISTING.
CATCH CX_SALV_NOT_FOUND.
ENDTRY.

You might also like