这玩意不知道什么时候用^_^

组件:Row-Repeater

1.新建WDA程序并激活  ZLYWDA02

2.进入VIEW,创建CONTEXT:

表:0..n

选择行:单选

初始化选择行

3.创建循环节点  右键HCONTEXT创建循环节点HCONTEXT_REC

给HCONTEXT添加属性:

TEXT:STRING       显示

CARRID:STRING   第一层

CONNID:STRING   第二层

VIEW的INIT中初始化节点:

METHOD WDDOINIT .
TYPES:
BEGIN OF TYP_FLIGHT,
CARRID TYPE STRING,
CONNID TYPE STRING,
NAME TYPE STRING,
END OF TYP_FLIGHT. DATA:
LS_FLIGHT TYPE TYP_FLIGHT,
LT_FLIGHT TYPE STANDARD TABLE OF TYP_FLIGHT. * set the internal table
CLEAR:LS_FLIGHT.
LS_FLIGHT-CARRID = 'CA-01'.
LS_FLIGHT-CONNID = 'CA-01-CO-01'.
LS_FLIGHT-NAME = 'CA-01-CO-01:item1'.
APPEND LS_FLIGHT TO LT_FLIGHT.
CLEAR:LS_FLIGHT.
LS_FLIGHT-CARRID = 'CA-01'.
LS_FLIGHT-CONNID = 'CA-01-CO-01'.
LS_FLIGHT-NAME = 'CA-01-CO-01:item2'.
APPEND LS_FLIGHT TO LT_FLIGHT.
CLEAR:LS_FLIGHT.
LS_FLIGHT-CARRID = 'CA-01'.
LS_FLIGHT-CONNID = 'CA-01-CO-01'.
LS_FLIGHT-NAME = 'CA-01-CO-01:item3'.
APPEND LS_FLIGHT TO LT_FLIGHT.
CLEAR:LS_FLIGHT.
LS_FLIGHT-CARRID = 'CA-01'.
LS_FLIGHT-CONNID = 'CA-01-CO-02'.
LS_FLIGHT-NAME = 'CA-01-CO-02:item1'.
APPEND LS_FLIGHT TO LT_FLIGHT.
CLEAR:LS_FLIGHT.
LS_FLIGHT-CARRID = 'CA-01'.
LS_FLIGHT-CONNID = 'CA-01-CO-03'.
LS_FLIGHT-NAME = 'CA-01-CO-03:item1'.
APPEND LS_FLIGHT TO LT_FLIGHT.
CLEAR:LS_FLIGHT.
LS_FLIGHT-CARRID = 'CA-02'.
LS_FLIGHT-CONNID = 'CA-02-CO-01'.
LS_FLIGHT-NAME = 'CA-02-CO-01:item1'.
APPEND LS_FLIGHT TO LT_FLIGHT.
CLEAR:LS_FLIGHT.
LS_FLIGHT-CARRID = 'CA-03'.
LS_FLIGHT-CONNID = 'CA-03-CO-01'.
LS_FLIGHT-NAME = 'CA-03-CO-01:item1'.
APPEND LS_FLIGHT TO LT_FLIGHT.
CLEAR:LS_FLIGHT.
LS_FLIGHT-CARRID = 'CA-03'.
LS_FLIGHT-CONNID = 'CA-03-CO-02'.
LS_FLIGHT-NAME = 'CA-03-CO-02:item1'.
APPEND LS_FLIGHT TO LT_FLIGHT.
CLEAR:LS_FLIGHT.
LS_FLIGHT-CARRID = 'CA-04'.
LS_FLIGHT-CONNID = 'CA-04-CO-01'.
LS_FLIGHT-NAME = 'CA-04-CO-01:item1'.
APPEND LS_FLIGHT TO LT_FLIGHT.
SORT LT_FLIGHT BY CARRID CONNID NAME.
* set the context
DATA:
LO_NODE TYPE REF TO IF_WD_CONTEXT_NODE,
LO_ELEM TYPE REF TO IF_WD_CONTEXT_ELEMENT,
LO_NODE_REC TYPE REF TO IF_WD_CONTEXT_NODE,
LO_ELEM2 TYPE REF TO IF_WD_CONTEXT_ELEMENT,
LO_NODE_REC2 TYPE REF TO IF_WD_CONTEXT_NODE,
LS_CONTEXT TYPE WD_THIS->ELEMENT_HCONTEXT,
LW_CARRID TYPE STRING,
LW_CONNID TYPE STRING.
LOOP AT LT_FLIGHT INTO LS_FLIGHT.
* new Carrid, 1st level.
* IF LW_CARRID <> LS_FLIGHT-CARRID.
IF LW_CARRID <> LS_FLIGHT-CONNID.
LW_CARRID = LS_FLIGHT-CONNID.
CONCATENATE '1st level:'
LS_FLIGHT-CARRID
INTO LS_CONTEXT-TEXT.
LS_CONTEXT-CARRID = LS_FLIGHT-CARRID.
LS_CONTEXT-CONNID = LS_FLIGHT-CONNID.
* node
LO_NODE = WD_CONTEXT->GET_CHILD_NODE( NAME = 'HCONTEXT' ).
* bind structure
LO_ELEM = LO_NODE->BIND_STRUCTURE( NEW_ITEM = LS_CONTEXT
SET_INITIAL_ELEMENTS = ABAP_FALSE ).
* create dependent node for recurion
LO_NODE_REC = LO_ELEM->GET_CHILD_NODE( 'HCONTEXT_REC' ).
ENDIF.
* for the 2rd level
CONCATENATE '2rd level:'
LS_FLIGHT-NAME
INTO LS_CONTEXT-TEXT.
LS_CONTEXT-CARRID = LS_FLIGHT-CARRID.
LS_CONTEXT-CONNID = LS_FLIGHT-CONNID.
* bind
LO_NODE_REC->BIND_STRUCTURE( NEW_ITEM = LS_CONTEXT
SET_INITIAL_ELEMENTS = ABAP_FALSE ).
ENDLOOP.
ENDMETHOD.

效果:

WDA基础八:ROWREPEATER的使用的更多相关文章

  1. Bootstrap <基础八>图片

    Bootstrap 提供了三个可对图片应用简单样式的 class: .img-rounded:添加 border-radius:6px 来获得图片圆角. .img-circle:添加 border-r ...

  2. Java语言基础(八)

    Java语言基础(八) 一.数学运算  + - * /  % (1)凡是byte  short  char类型都按int类型的计算   看看上面的代码,为什么出错! 我已经将100转成byte类型,( ...

  3. {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session

    Django基础八之cookie和session 本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 ...

  4. Java基础八--构造函数

    Java基础八--构造函数 一.子父类中构造函数的特点 1.1 为什么在子类构造对象时,发现,访问子类构造函数时,父类也运行了呢? 原因是:在子类的构造函数中第一行有一个默认的隐式语句. super( ...

  5. day 62.3 Django基础八之cookie和session

    Django基础八之cookie和session   本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx ...

  6. day 73 Django基础八之cookie和session

      Django基础八之cookie和session   本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 x ...

  7. Django基础八之认证模块---auth

    Django基础八之认证模块---auth 目录 Django基础八之认证模块---auth 1. auth介绍 2. autho常用操作 2.1 创建用户 2.2 验证用户 2.3 验证用户是否登录 ...

  8. WDA基础十八:Select option配置

    为了省代码...为了方便管理WDA的查询条件... 首先建配置表: 说明: 上面的KEY基本都是维护的维度,可以根据销售组织,根据用户组,根据组件,根据SELECT OPTION的不同...等等,可以 ...

  9. python基础(八)面向对象的基本概念

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 谢谢逆水寒龙,topmad和Liqing纠错 Python使用类(class)和对 ...

随机推荐

  1. Python实现机器学习算法:AdaBoost算法

    Python程序 ''' 数据集:Mnist 训练集数量:60000(实际使用:10000) 测试集数量:10000(实际使用:1000) 层数:40 ------------------------ ...

  2. super()、this属性与static静态方法的执行逻辑

    1.super的构造顺序:永远优先构造父类的方法 2.static永远在类实例之前执行,this的使用范围为实例之后

  3. 【Python】【jupyter-notebook】

    1. win7 安装:https://www.cnblogs.com/zlslch/p/6984403.html 1.Jupyter Notebook 和 pip   为了更加方便地写 Python ...

  4. IOS学习笔记一1

    //创建.h文件 界面的类文件(创建一个类) @interface MyClass:NSObject{ //类变量声明 int a; int b; } //类属性声明 (int) p2 //类方法声明 ...

  5. Gson的fromJson()方法把json字符创转为实体

    直接上代码: 1.先看Person实体类 import lombok.Data; @Data public class Person { private String name; private in ...

  6. python 加密

    https://github.com/duanhongyi/gmssl

  7. Jmeter 老司机带你一小时学会Jmeter

    Jmeter的安装   官网下载地址:http://jmeter.apache.org/download_jmeter.cgi 作为Java应用,是需要JDK环境的,因此需要下载安装JAVA,并且作必 ...

  8. Java SE HashMap的底层实现

    1.hash散列算法 由于hashmap在存储过程中是数组加链表的存储过程,所以定义数组长度为16(建议是2的n次幂的长度),之后进行每个数组的地址都指向一个链表进行存储 hash表算法可对数组长度l ...

  9. 设计模式(三)Singleton Pattern单例设计模式

    1.饿汉式 public class SingletonDemo { private static SingletonDemo s=new SingletonDemo(); private Singl ...

  10. 你想了解Go语言开发吗?

    大家先了解一下什么是Go语言? Go语言是谷歌2009发布的第二款开源编程语言.Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全.支持 ...