Alv Functionality
Alv Functionality
com/en/sap/transaction/SM36-How-to-schedule-a-background-job-fo
r-several-time-Daily-thread-1-3261952.htm
F:\usr\sap\ECD\DVEBMGS00\data\Weigh_bridge
DATA: GT_TABLE
ns
GR_LAYOUT
layouts of the
KEY
LO_REPORT->GENERATE_OUTPUT( ).
01 - EXT
02 - ENT
if vbak-zvbeln IS NOT INITIAL.
SELECT SINGLE ZVBELN
FROM vbak
INTO vbak
WHERE ZVBELN = vbak-vbeln.
IF sy-subrc ne 0 .
MESSAGE 'Enter Valid Sales Order No.' TYPE 'S' DISPLAY LIKE 'E'.
SET SCREEN SYST-DYNNR.
LEAVE SCREEN.
ENDIF.
ENDIF.
TRY.
LV_COLUMN ?= LV_COLUMNS->GET_COLUMN( 'VBELN' ).
GT_TABLE->GET_COLUMNS( )->SET_COLUMN_POSITION( COLUMNNAME = 'VBELN'
POSITION = 1 ).
LV_COLUMN->SET_LONG_TEXT( 'Sales Order No.' ).
LV_COLUMN->SET_MEDIUM_TEXT( ' ' ).
LV_COLUMN->SET_SHORT_TEXT( ' ' ).
LV_COLUMN->SET_KEY( IF_SALV_C_BOOL_SAP=>TRUE ).
CATCH CX_SALV_NOT_FOUND.
"#EC NO_HANDLER
ENDTRY.
TRY.
LV_COLUMN ?= LV_COLUMNS->GET_COLUMN( 'AUFNR' ).
GT_TABLE->GET_COLUMNS( )->SET_COLUMN_POSITION( COLUMNNAME = 'AUFNR'
POSITION = 2 ).
LV_COLUMN->SET_LONG_TEXT( 'Production Order No.' ).
LV_COLUMN->SET_MEDIUM_TEXT( ' ' ).
LV_COLUMN->SET_SHORT_TEXT( ' ' ).
LV_COLUMN->SET_KEY( IF_SALV_C_BOOL_SAP=>TRUE ).
CATCH CX_SALV_NOT_FOUND.
"#EC NO_HANDLER
ENDTRY.
TRY.
LV_COLUMN ?= LV_COLUMNS->GET_COLUMN( 'KUNNR' ).
GT_TABLE->GET_COLUMNS( )->SET_COLUMN_POSITION( COLUMNNAME = 'KUNNR'
POSITION = 3 ).
LV_COLUMN->SET_LONG_TEXT( 'Customer No.' ).
LV_COLUMN->SET_MEDIUM_TEXT( ' ' ).
LV_COLUMN->SET_SHORT_TEXT( ' ' ).
CATCH CX_SALV_NOT_FOUND.
"#EC NO_HANDLER
ENDTRY.
TRY.
LV_COLUMN ?= LV_COLUMNS->GET_COLUMN( 'NAME1' ).
GT_TABLE->GET_COLUMNS( )->SET_COLUMN_POSITION( COLUMNNAME = 'NAME1'
POSITION = 4 ).
LV_COLUMN->SET_LONG_TEXT( 'Customer Name' ).
LV_COLUMN->SET_MEDIUM_TEXT( ' ' ).
LV_COLUMN->SET_SHORT_TEXT( ' ' ).
CATCH CX_SALV_NOT_FOUND.
"#EC NO_HANDLER
ENDTRY.
TRY.
LV_COLUMN ?= LV_COLUMNS->GET_COLUMN( 'MATNR' ).
GT_TABLE->GET_COLUMNS( )->SET_COLUMN_POSITION( COLUMNNAME = 'MATNR'
POSITION = 5 ).
LV_COLUMN->SET_LONG_TEXT( 'Components' ).
LV_COLUMN->SET_MEDIUM_TEXT( ' ' ).
LV_COLUMN->SET_SHORT_TEXT( ' ' ).
CATCH CX_SALV_NOT_FOUND.
"#EC NO_HANDLER
ENDTRY.
TRY.
LV_COLUMN ?= LV_COLUMNS->GET_COLUMN( 'MAKTX' ).
GT_TABLE->GET_COLUMNS( )->SET_COLUMN_POSITION( COLUMNNAME = 'MAKTX'
POSITION = 6 ).
LV_COLUMN->SET_LONG_TEXT( 'Components Description' ).
LV_COLUMN->SET_MEDIUM_TEXT( ' ' ).
LV_COLUMN->SET_SHORT_TEXT( ' ' ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
"#EC NO_HANDLER
TRY.
LV_COLUMN ?= LV_COLUMNS->GET_COLUMN( 'ZPLPR' ).
GT_TABLE->GET_COLUMNS( )->SET_COLUMN_POSITION( COLUMNNAME = 'ZPLPR'
POSITION = 7 ).
LV_COLUMN->SET_LONG_TEXT( 'Estimate price' ).
LV_COLUMN->SET_MEDIUM_TEXT( ' ' ).
LV_COLUMN->SET_SHORT_TEXT( ' ' ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
"#EC NO_HANDLER
TRY.
LV_COLUMN ?= LV_COLUMNS->GET_COLUMN( 'MENGE' ).
GT_TABLE->GET_COLUMNS( )->SET_COLUMN_POSITION( COLUMNNAME = 'MENGE'
POSITION = 8 ).
LV_COLUMN->SET_LONG_TEXT( 'Actual qty' ).
LV_COLUMN->SET_MEDIUM_TEXT( ' ' ).
LV_COLUMN->SET_SHORT_TEXT( ' ' ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
"#EC NO_HANDLER
TRY.
LV_COLUMN ?= LV_COLUMNS->GET_COLUMN( 'DMBTR' ).
GT_TABLE->GET_COLUMNS( )->SET_COLUMN_POSITION( COLUMNNAME = 'DMBTR'
POSITION = 9 ).
LV_COLUMN->SET_LONG_TEXT( 'Actual price' ).
LV_COLUMN->SET_MEDIUM_TEXT( ' ' ).
LV_COLUMN->SET_SHORT_TEXT( ' ' ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
"#EC NO_HANDLER
TRY.
LV_COLUMN ?= LV_COLUMNS->GET_COLUMN( 'VARIA' ).
GT_TABLE->GET_COLUMNS( )->SET_COLUMN_POSITION( COLUMNNAME = 'VARIA'
POSITION = 10 ).
LV_COLUMN->SET_LONG_TEXT( 'Variance' ).
LV_COLUMN->SET_MEDIUM_TEXT( ' ' ).
LV_COLUMN->SET_SHORT_TEXT( ' ' ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
"#EC NO_HANDLER
TRY.
LV_COLUMN ?= LV_COLUMNS->GET_COLUMN( 'PERCE' ).
GT_TABLE->GET_COLUMNS( )->SET_COLUMN_POSITION( COLUMNNAME = 'PERCE'
POSITION = 11 ).
LV_COLUMN->SET_LONG_TEXT( 'Variance Percentage' ).
LV_COLUMN->SET_MEDIUM_TEXT( ' ' ).
LV_COLUMN->SET_SHORT_TEXT( ' ' ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
*hotspot on Material Document & Purchase Order Number
CALL METHOD GT_TABLE->GET_COLUMNS "get all columns
RECEIVING
"#EC NO_HANDLER
VALUE = LV_COLUMNS.
IF LV_COLUMNS IS NOT INITIAL.
TRY.
LR_COL ?= LV_COLUMNS->GET_COLUMN( 'VBELN' ). "get Sales Document colum
ns to insert hotspot
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY.
CALL METHOD LR_COL->SET_CELL_TYPE "set cell type hotspot
EXPORTING
VALUE = IF_SALV_C_CELL_TYPE=>HOTSPOT.
CATCH CX_SALV_DATA_ERROR .
ENDTRY.
ENDIF.
TRY.
LR_COL ?= LV_COLUMNS->GET_COLUMN( 'AUFNR' ). "get Purchase Order columns
to insert hotspot
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY.
CALL METHOD LR_COL->SET_CELL_TYPE "set cell type hotspot
EXPORTING
VALUE = IF_SALV_C_CELL_TYPE=>HOTSPOT.
CATCH CX_SALV_DATA_ERROR .
ENDTRY.
GO_CEVENTS = GT_TABLE->GET_EVENT( ).
CREATE OBJECT GO_LEVENTS.
SET HANDLER GO_LEVENTS->ON_LINE_CLICK FOR GO_CEVENTS.
*Handle hotspot on Purchase Order Number click
GO_CEVENTS = GT_TABLE->GET_EVENT( ).
CREATE OBJECT GO_LEVENTS.
SET HANDLER GO_LEVENTS->ON_LINE_CLICK FOR GO_CEVENTS.
*Handle hotspot on Purchase Order Number click
*TOP-OF-Page Details Below
CREATE OBJECT LR_GRID_LAYOUT.
L_TEXT = 'Plan Vs Actual Report' .
LR_GRID_LAYOUT->CREATE_HEADER_INFORMATION( "create header for grid
ROW
= 1
COLUMN = 12
TEXT
= L_TEXT
TOOLTIP = L_TEXT ).
*2nd row 1st column
LR_GRID_LAYOUT->ADD_ROW( ). "add row
LR_LABEL = LR_GRID_LAYOUT->CREATE_LABEL(
ROW
= 2
COLUMN = 1
TEXT
= 'Plant'
TOOLTIP = 'Plant' ).
LR_HEADER = LR_GRID_LAYOUT.
CALL METHOD GT_TABLE->SET_TOP_OF_LIST "set top of list
EXPORTING
VALUE = LR_HEADER.
TRY.
CALL METHOD LO_AGGRS->ADD_AGGREGATION "add aggregation
EXPORTING
COLUMNNAME = 'ZPLPR' "aggregation column name
AGGREGATION = IF_SALV_C_AGGREGATION=>TOTAL. "aggregation type
CATCH CX_SALV_DATA_ERROR .
CATCH CX_SALV_NOT_FOUND .
CATCH CX_SALV_EXISTING .
ENDTRY.
"#EC NO_HANDLER
"#EC NO_HANDLER
"#EC NO_HANDLER
TRY.
CALL METHOD LO_AGGRS->ADD_AGGREGATION "add aggregation
EXPORTING
COLUMNNAME = 'DMBTR' "aggregation column name
AGGREGATION = IF_SALV_C_AGGREGATION=>TOTAL. "aggregation type
CATCH CX_SALV_DATA_ERROR .
CATCH CX_SALV_NOT_FOUND .
CATCH CX_SALV_EXISTING .
ENDTRY.
"#EC NO_HANDLER
"#EC NO_HANDLER
"#EC NO_HANDLER
TRY.
CALL METHOD LO_AGGRS->ADD_AGGREGATION "add aggregation
EXPORTING
COLUMNNAME = 'VARIA' "aggregation column name
AGGREGATION = IF_SALV_C_AGGREGATION=>TOTAL. "aggregation type
CATCH CX_SALV_DATA_ERROR .
CATCH CX_SALV_NOT_FOUND .
CATCH CX_SALV_EXISTING .
ENDTRY.
"#EC NO_HANDLER
"#EC NO_HANDLER
"#EC NO_HANDLER