说明,因为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( '' )."设置可见行
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( '' )."设置滚动条
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

激活所有对象。右键程序测试

WDA基础五:ALV组件的使用的更多相关文章

  1. WDA基础十四:ALV字段属性配置表

    ALV配置表管理 一.字段属性配置表 对于可编辑的ALV不用这个,尽可能多的设置一些控制: 单元格类型:默认A,特殊选择 ZLYE_TYPE        E       A       1      ...

  2. Bootstrap <基础五>表格

    Bootstrap 提供了一个清晰的创建表格的布局.下表列出了 Bootstrap 支持的一些表格元素: 标签 描述 <table> 为表格添加基础样式. <thead> 表格 ...

  3. C#基础之类、组件和命名空间(二)

    一.实例化对象 Student s; 首先是在栈中开辟一块空间叫s,s里面的内容是空: s = new Student(); 在堆实例化Student对象,将对象的引用地址保存到栈s里.因此,s指向S ...

  4. Bootstrap入门(十五)组件9:面板组件

    Bootstrap入门(十五)组件9:面板组件 虽然不总是必须,但是某些时候你可能需要将某些 DOM 内容放到一个盒子里.对于这种情况,可以试试面板组件. 1.基本实例 2.带标题的面板 3.情景效果 ...

  5. C#_02.14_基础五_.NET类

    C#_02.14_基础五_.NET类 一.类实例: 我们前面说过类是一个模板,我们通过类创建一个又一个的实例,通常情况下类当中的变量是每一个实例都各有一份的,互相不影响,而静态字段是除外的,静态字段是 ...

  6. Hadoop基础-Hdfs各个组件的运行原理介绍

    Hadoop基础-Hdfs各个组件的运行原理介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.NameNode工作原理(默认端口号:50070) 1>.什么是NameN ...

  7. react基础用法二(组件渲染)

    react基础用法二(组件渲染) 如图所示组件可以是函数 格式:function 方法名(){ return <标签>内容</标签>} 渲染格式: <方法名 />  ...

  8. 2.基础:Vue组件的核心概念

    一.组件基础和注册 组件概念 组件系统是 Vue 的另一个重要概念,他的核心就是封装和复用. 细节 组件的name必须是全局唯一. 二.属性.事件和插槽 组件的三大核心概念:属性.事件和插槽. 属性, ...

  9. Vue – 基础学习(2):组件间 通信及参数传递

    Vue – 基础学习(2):组件间 通信及参数传递

随机推荐

  1. javascript创建函数的20种方式汇总

    http://www.jb51.net/article/68285.htm 工作中常常会创建一个函数来解决一些需求问题,以下是个人在工作中总结出来的创建函数20种方式,你知道多少? function ...

  2. 在centos6中编译安装httpd-2.4/搭建LAMP

    首先确保centos6安装平台安装一下环境: #yum groupinstall "Development  Tools" "Server Platform Develo ...

  3. HDU 5119 Happy Matt Friends(递推)

    http://acm.hdu.edu.cn/showproblem.php?pid=5119 题意:给出n个数和一个上限m,求从这n个数里取任意个数做异或运算,最后的结果不小于m有多少种取法. 思路: ...

  4. Java volatile 有什么作用

    在由Java语言编写的程序中.有时候为了提高程序的执行效率,编译器会自己主动对其进行优化,把经常被訪问的变量缓存起来,程序在读取这个变量的时候有可能会直接从缓存(比如寄存器)中来读取这个值.而不会去内 ...

  5. MySql登陆密码忘记了怎么办?MySQL重置root密码方法

    本文主要介绍Windows和Linux系统下忘记密码重置root密码的方法,需要的朋友可以参考下. MySQL有时候忘记了root密码是一件伤感的事.这里提供Windows 和 Linux 下的密码重 ...

  6. 微信小程序 数据绑定方式

    与vue不同,在微信小程序中,js的数据和前端显示的数据是单数据流,也就是说,js里边的数据变了(通过setData),前端能立刻显示.但如果前端数据变了,js中的变量不能改变. 这个相比传统的前端已 ...

  7. JAVA创建子进程并处理waitFor() 阻塞问题

    虽然很想休息,但是想想还是要把今天学的东西记下来,不然以后再用还是新知识. 新建一个线程类读取子进程的汇报信息和错误信息,避免阻塞 class StreamGobbler extends Thread ...

  8. arcpy导入错误 问题 “ImportError: No module named arcpy”

    如果阁下也出现如下图的错误,用本文的方法也许可以解决问题 首先,打开你python的安装位置,如下图所示的路径,找到desktop10.3.pth文件,打开查看,将你arcgis的相关路径,共3个绝对 ...

  9. rpm命令参数(转载)

    rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两种.二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译.安装.源代码包经常以src.rpm作为后缀名. 还不清楚具 ...

  10. java重新学习记载的一些资料。

    1.ided的注册码地址. IDEA的密码:http://idea.lanyus.com/ 2.