WDA ALV组件复用 SALV_WD_TABLE

首先在项目引入组件

 在视图中点击创建,引入已经使用的组件

在view的layout中绘制ALV container 

 在ALV Container 中嵌套ALV的TABLE 视图

ALVCONTAINER做好后,打开组件用途中的ALV组件,将全局的TABLE映射到DATA中(拖拽),如果没有数据源,要点击控制器的用法,把全局的CONTAINER引用进来

 声明ALV对象

之后是编码

首先在WDDOINIT中初始化ALV,

  DATA: LR_SALV_WD_TABLE_USAGE   TYPE REF TO IF_WD_COMPONENT_USAGE.
  DATA: LR_TABLE_SETTINGS        TYPE REF TO IF_SALV_WD_TABLE_SETTINGS.
  DATA  LR_SALV_WD_STD_FUNCTIONS TYPE REF TO IF_SALV_WD_STD_FUNCTIONS .
  DATA: LR_SALV_WD_TABLE         TYPE REF TO IWCI_SALV_WD_TABLE.
  LR_SALV_WD_TABLE_USAGE = WD_THIS->WD_CPUSE_ALV2( ).
  IF LR_SALV_WD_TABLE_USAGE->HAS_ACTIVE_COMPONENT( ) IS INITIAL.
    LR_SALV_WD_TABLE_USAGE->CREATE_COMPONENT( ).
  ENDIF.

  LR_SALV_WD_TABLE = WD_THIS->WD_CPIFC_ALV2( ).
  WD_THIS->ALV_CONFIG_TABLE = LR_SALV_WD_TABLE->GET_MODEL( ).

  LR_TABLE_SETTINGS ?= WD_THIS->ALV_CONFIG_TABLE.
  LR_SALV_WD_STD_FUNCTIONS ?= WD_THIS->ALV_CONFIG_TABLE .

  LR_TABLE_SETTINGS->SET_VISIBLE_ROW_COUNT( '10' )."设置可见行
  LR_TABLE_SETTINGS->SET_ROW_SELECTABLE( ABAP_TRUE )."设置行选择
  LR_TABLE_SETTINGS->SET_WIDTH( '80%' )."设置ALV宽度
  LR_TABLE_SETTINGS->SET_EDIT_MODE( IF_SALV_WD_C_TABLE_SETTINGS=>EDIT_MODE )."设置编辑模式
*  LR_TABLE_SETTINGS->SET_EDIT_MODE( IF_SALV_WD_C_TABLE_SETTINGS=>EDIT_MODE_STANDARD )."设置不可编辑模式
  LR_TABLE_SETTINGS->SET_READ_ONLY( ABAP_FALSE )."设置ALV整体不可编辑
  LR_TABLE_SETTINGS->SET_SCROLLABLE_COL_COUNT( '10' )."设置滚动条
  LR_TABLE_SETTINGS->SET_ENABLED( ABAP_TRUE ) ."可处理的
  LR_TABLE_SETTINGS->SET_EMPTY_TABLE_TEXT( 'Empty' ) ."设置空表时显示的文本
  LR_TABLE_SETTINGS->SET_FIXED_TABLE_LAYOUT( ABAP_TRUE ).  "使列宽可自动调节
  LR_TABLE_SETTINGS->SET_DISPLAY_EMPTY_ROWS( ABAP_FALSE ).  "不展示空表
  LR_TABLE_SETTINGS->SET_CELL_ACTION_EVENT_ENABLED( ABAP_FALSE ).

 LR_SALV_WD_STD_FUNCTIONS->SET_PDF_ALLOWED( ABAP_TRUE ).
 LR_SALV_WD_STD_FUNCTIONS->SET_EXPORT_ALLOWED( ABAP_TRUE ).
 LR_SALV_WD_STD_FUNCTIONS->SET_FILTER_COMPLEX_ALLOWED( ABAP_TRUE ).
 LR_SALV_WD_STD_FUNCTIONS->SET_EXCEL_INPLACE_ALLOWED( ABAP_TRUE ).
 LR_SALV_WD_STD_FUNCTIONS->SET_SORT_HEADERCLICK_ALLOWED( ABAP_TRUE ).
 LR_SALV_WD_STD_FUNCTIONS->SET_VIEW_LIST_ALLOWED( ABAP_TRUE ).
 LR_SALV_WD_STD_FUNCTIONS->SET_SORT_COMPLEX_ALLOWED( ABAP_TRUE ).

*---->ALV COLUMN CONFIGURE
  DATA:
    LR_COLUMN_SETTINGS TYPE REF TO IF_SALV_WD_COLUMN_SETTINGS,
    LR_COLUMN          TYPE REF TO CL_SALV_WD_COLUMN,
    LR_COLUMN_HEADER   TYPE REF TO CL_SALV_WD_COLUMN_HEADER.

  LR_COLUMN_SETTINGS ?= WD_THIS->ALV_CONFIG_TABLE.
  "排除不显示的字段
*  LR_COLUMN = LR_COLUMN_SETTINGS->GET_COLUMN( 'PROCESS_TYPE' ).
*  LR_COLUMN->SET_VISIBLE( IF_WDL_CORE=>VISIBILITY_NONE ).
*
*  LR_COLUMN = LR_COLUMN_SETTINGS->GET_COLUMN( 'RETAILER_PARTNER' ).
*  LR_COLUMN->SET_VISIBLE( IF_WDL_CORE=>VISIBILITY_NONE ).

"设置字段属性(下拉,按钮等)
  LR_COLUMN = LR_COLUMN_SETTINGS->GET_COLUMN( 'ID' ).
  LR_COLUMN_HEADER = LR_COLUMN->GET_HEADER( ).
  LR_COLUMN_HEADER = LR_COLUMN->DELETE_HEADER( ).
  LR_COLUMN_HEADER = LR_COLUMN->CREATE_HEADER( ).
*  LR_COLUMN_HEADER->SET_TEXT( CL_WD_UTILITIES=>GET_OTR_TEXT_BY_ALIAS( 'ZCRM/SORG' ) ).
  LR_COLUMN_HEADER->SET_TEXT( 'TEST_FIELD' ).

设置ALV某一列可编辑

"设置字段属性(下拉,按钮等)
  LR_COLUMN = LR_COLUMN_SETTINGS->GET_COLUMN( 'COUNTRYFR' ).
  DATA: LR_INPUT_FIELD TYPE REF TO CL_SALV_WD_UIE_INPUT_FIELD.
  CREATE OBJECT LR_INPUT_FIELD
    EXPORTING
      VALUE_FIELDNAME = 'COUNTRYFR'. "此ID要与COLUMN对应,或者用GET_COLUMNS,然后循环处理列属性

  LR_COLUMN->SET_CELL_EDITOR( LR_INPUT_FIELD ).

效果:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gong JX

多谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值