说明,因为ALV的功能比TABLE强大,所以在很多时候都习惯性的选择ALV显示。
ALV是WDA的组件,封装好的,和SELECT OPTION一样。所以使用的方法一般就是:引入组件,初始化组件,数据绑定,数据显示。。。
1.
1.1程序组件引入ALV组件:
在程序组件中引入ALV组件,命名为ALV。
1.2视图引入组件中集成的ALV对象
视图Properties页签中引入ALV对象
2.初始化ALV
视图method页签中新建方法
将INIT_ALV方法加入到WDDOINIT
INIT_ALV( ).
INIT_ALV添加初始化代码:
METHOD INIT_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_TABLE TYPE REF TO IWCI_SALV_WD_TABLE. LR_SALV_WD_TABLE_USAGE = WD_THIS->WD_CPUSE_ALV( ). 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_ALV( ). WD_THIS->ALV_CONFIG_TABLE = LR_SALV_WD_TABLE->GET_MODEL( ). LR_TABLE_SETTINGS ?= 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( '50%' )."设置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_FALSE ). "使列宽可自动调节 LR_TABLE_SETTINGS->SET_DISPLAY_EMPTY_ROWS( ABAP_FALSE ). "不展示空表 *---->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( 'ZRENO' ). 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 NO.' ). "此处使用INPUT_FIELD 是为了展示前面设置的可编辑属性(默认都是text,不可编辑,所以有要编辑的列,需要这里设置一下) DATA: LR_INPUT_FIELD TYPE REF TO CL_SALV_WD_UIE_INPUT_FIELD. CREATE OBJECT LR_INPUT_FIELD EXPORTING VALUE_FIELDNAME = 'ZRENO'."此ID要与COLUMN对应,或者用GET_COLUMNS,然后循环处理列属性 LR_COLUMN->SET_CELL_EDITOR( LR_INPUT_FIELD ). "设置ALV按钮排除 WD_THIS->ALV_CONFIG_TABLE->IF_SALV_WD_FUNCTION_SETTINGS~DELETE_FUNCTION( ID = 'SALV_WD_PDF' ). WD_THIS->ALV_CONFIG_TABLE->IF_SALV_WD_FUNCTION_SETTINGS~DELETE_FUNCTION( ID = 'SALV_WD_VIEW_LOAD' ). WD_THIS->ALV_CONFIG_TABLE->IF_SALV_WD_FUNCTION_SETTINGS~DELETE_FUNCTION( ID = 'SALV_WD_INPUT_APPEND_ROW' ). WD_THIS->ALV_CONFIG_TABLE->IF_SALV_WD_FUNCTION_SETTINGS~DELETE_FUNCTION( ID = 'SALV_WD_INPUT_INSERT_ROW' ). WD_THIS->ALV_CONFIG_TABLE->IF_SALV_WD_FUNCTION_SETTINGS~DELETE_FUNCTION( ID = 'SALV_WD_INPUT_DELETE' ). WD_THIS->ALV_CONFIG_TABLE->IF_SALV_WD_FUNCTION_SETTINGS~DELETE_FUNCTION( ID = 'SALV_WD_INPUT_CHECK' ). ENDMETHOD.
3.COMPONENTCONTROLLER中创建全局节点(之前创建的节点是在视图中,现在ALV需要绑定数据)
与前面的创建相同
在ALV组件中绑定数据到ALV
绑定成功后,DATA变成双向箭头
在视图中,绑定ITEM节点到COMPONENTCONTROLLER的节点,同上
(注,如果ALV数据只在单个VIEW里使用可以在VIEW中,将ITEM节点绑定到ALV的DATA节点)
4.ALV控制器创建,并在窗口中添加
为了程序效果,这里会将原有的TABLE保留,并将ALV放到TABLE下面
在LAYOUT中创建ViewContainerUIElement容器,放在TABLE后面
此时窗口显示
在窗口的ALV上,右键->嵌套视图 如下:
待嵌套的视图,F4:如下图
选择ALV table
激活所有对象。右键程序测试
^_^很多人都把资料锁进了note里,以后还怎么百度呢^_^
分类:
WDA
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· .NET 8.0 + Linux 香橙派,实现高效的 IoT 数据采集与控制解决方案
· .NET中 泛型 + 依赖注入 的实现与应用