ABAP的OOSALV的最短代码报表
FORM FRM_CALL_VF05N USING PS_DATA TYPE J_3RMOBVEDH_TOTAL.
DATA: LO_SALV TYPE REF TO CL_SALV_TABLE,
LO_SALV_COLS TYPE REF TO CL_SALV_COLUMNS_TABLE,
LO_FUNCTION TYPE REF TO CL_SALV_FUNCTIONS_LIST,
LO_DISPLAY TYPE REF TO CL_SALV_DISPLAY_SETTINGS.
DATA:LT_VBRP TYPE TABLE OF VBRP.
LOOP AT GT_VBRP INTO GS_VBRP WHERE CHARG = PS_DATA-CHARG.
APPEND GS_VBRP TO LT_VBRP.
ENDLOOP.
*
CL_SALV_TABLE=>FACTORY( IMPORTING R_SALV_TABLE = LO_SALV CHANGING T_TABLE = LT_VBRP ).
IF LO_SALV IS BOUND.
LO_SALV_COLS = LO_SALV->GET_COLUMNS( ).
LO_SALV_COLS->SET_OPTIMIZE(
EXPORTING
VALUE = IF_SALV_C_BOOL_SAP=>TRUE ).
PERFORM FRM_CHANGE_TEXT USING LO_SALV_COLS 'LGOBE' '库存地点'."修改列名称
LO_FUNCTION = LO_SALV->GET_FUNCTIONS( ).
LO_FUNCTION->SET_ALL( 'X' ).
"设置工具条:只适用于全屏模式与全屏幕经典列表模式的SALV
LO_SALV->SET_SCREEN_STATUS(
PFSTATUS = 'SALV_TABLE_STANDARD'"系统提示的标准Status为SAPLSALV_METADATA_STATUS程序中的SALV_TABLE_STANDARD
REPORT = SY-REPID
"注:此参数只对SALV标准的预设保留按钮起作用,也就是说,当 T001 GUI Status是从
"系统中提供的标准Gui Staus拷贝时才起作用,即通用此参数来屏蔽或显示某些预置按钮
"对自己完全新创建的GUI Status是的按钮(实质上是根据 FunCode来判断的)不起作用
SET_FUNCTIONS = LO_SALV->C_FUNCTIONS_ALL )."显示所有通用的预设按钮
"set_functions = gr_table->c_functions_default )."显示基本默认选择性的预设按钮
"set_functions = gr_table->c_functions_none )."所有预设按钮都将不会显示
LO_SALV->DISPLAY( ) .
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_CHANGE_TEXT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
* -->P_LO_SALV_COLS text
* -->P_ text
* -->P_ text
*&---------------------------------------------------------------------*
FORM FRM_CHANGE_TEXT USING LO_SALV_COLS TYPE REF TO CL_SALV_COLUMNS_TABLE
NAME1
NAME2.
DATA: LO_SALV_COL1 TYPE REF TO CL_SALV_COLUMN_TABLE.
TRY.
* 取得单个列的对象
LO_SALV_COL1 ?= LO_SALV_COLS->GET_COLUMN( NAME1 ).
LO_SALV_COL1->SET_LONG_TEXT( NAME2 ).
LO_SALV_COL1->SET_MEDIUM_TEXT( NAME2 ).
LO_SALV_COL1->SET_SHORT_TEXT( NAME2 ).
CATCH CX_SALV_NOT_FOUND. "#EC NO_HANDLER
ENDTRY.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_HIDE_COLUM 隐藏列
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
* -->P_LO_SALV_COLS text
* -->P_ text
* -->P_ text
*&---------------------------------------------------------------------*
FORM FRM_HIDE_COLUM USING LO_SALV_COLS TYPE REF TO CL_SALV_COLUMNS_TABLE
NAME1.
DATA: LO_SALV_COL1 TYPE REF TO CL_SALV_COLUMN_TABLE.
TRY.
* 取得单个列的对象
LO_SALV_COL1 ?= LO_SALV_COLS->GET_COLUMN( NAME1 ).
LO_SALV_COL1->SET_VISIBLE( CL_SALV_COLUMN_TABLE=>FALSE ).
CATCH CX_SALV_NOT_FOUND. "#EC NO_HANDLER
ENDTRY.
ENDFORM.
浙公网安备 33010602011771号