效果图:

step:

无需节点无需UI

1、添加属性

2、代码:

method WDDOMODIFYVIEW .
DATA:lr_graph TYPE REF TO cl_wd_business_graphics,
lr_cat TYPE REF TO cl_wd_category,
lr_series TYPE REF TO cl_wd_simple_series,
lr_container TYPE REF TO cl_wd_uielement_container,
lr_flow TYPE REF TO cl_wd_flow_data.
lr_container ?= view->get_element( 'ROOTUIELEMENTCONTAINER' ).
lr_graph = cl_wd_business_graphics=>new_business_graphics(
bind_series_source = 'NODE_DYN'
chart_type = cl_wd_business_graphics=>e_chart_type-BARS
height =
width =
* BIND_TOOLTIP = 'GRAPH.TT'
id = 'GRAPH' ).
lr_flow = cl_wd_flow_data=>new_flow_data( element = lr_graph ).
lr_container->add_child( lr_graph ).
wd_this->value_cs ?= lr_graph.
wd_this->mr_view ?= view.
DATA: lr_bgr_ss TYPE REF TO cl_wd_simple_series.
lr_bgr_ss = cl_wd_simple_series=>new_simple_series(
bind_value = 'NODE_DYN.SERIES1'
label = 'Series_1'
view = wd_this->mr_view ).
wd_this->value_cs->ADD_SERIES( lr_bgr_ss ).
lr_bgr_ss = cl_wd_simple_series=>new_simple_series(
bind_value = 'NODE_DYN.SERIES2'
label = 'Series_2'
view = wd_this->mr_view ).
wd_this->value_cs->ADD_SERIES( lr_bgr_ss ).
DATA: lr_bgr_cs TYPE REF TO cl_wd_category.
lr_bgr_cs = cl_wd_category=>new_category(
view = wd_this->mr_view bind_description = 'NODE_DYN.CATEGORY').
wd_this->value_cs->set_category( lr_bgr_cs ).
endmethod.

3、代码:

method INSERT_DATA_CONTEXT .
DATA: lo_node TYPE REF TO if_wd_context_node.
* ls_elem type WD_THIS->element_NODE_DYN,
* lt_elem type WD_THIS->elements_NODE_DYN.
TYPES: BEGIN OF typ_st,
series1 TYPE i,
series2 TYPE i,
category TYPE string,
END OF typ_st.
DATA: ls_elem TYPE typ_st,
lt_elem TYPE TABLE OF typ_st.
ls_elem-series1 = .
ls_elem-series2 = .
ls_elem-category = 'Category 1'.
APPEND ls_elem TO lt_elem.
ls_elem-series1 = .
ls_elem-series2 = .
ls_elem-category = 'Category 2'. APPEND ls_elem TO lt_elem.
ls_elem-series1 = .
ls_elem-series2 = .
ls_elem-category = 'Category 3'.
APPEND ls_elem TO lt_elem.
lo_node = wd_context->get_child_node( name = 'NODE_DYN' ).
lo_node->bind_table( lt_elem ) .
endmethod.

4、代码:

method CREATE_CONTEXT_NODE .
DATA: lo_nodeinfo TYPE REF TO if_wd_context_node_info,
typ_struct type REF TO cl_abap_structdescr,
typ_table TYPE REF TO cl_abap_tabledescr,
com_tab type cl_abap_structdescr=>component_table,
com like LINE OF com_tab.
* component info
com-name = 'SERIES1'.
com-type ?= cl_abap_datadescr=>describe_by_name( 'I' ).
append com to com_tab.
com-name = 'SERIES2'.
com-type ?= cl_abap_datadescr=>describe_by_name( 'I' ).
append com to com_tab.
com-name = 'CATEGORY'.
com-type ?= cl_abap_datadescr=>describe_by_name( 'STRING' ).
append com to com_tab.
* create the structure
typ_struct = cl_abap_structdescr=>create( com_tab ).
* dynamic create the context node
lo_nodeinfo = wd_context->get_node_info( ).
lo_nodeinfo = lo_nodeinfo->add_new_child_node(
name = 'NODE_DYN'
IS_MANDATORY = ABAP_false
IS_MULTIPLE = ABAP_true
STATIC_ELEMENT_RTTI = typ_struct IS_STATIC = ABAP_false ).
endmethod.

5、初始化代码:

method WDDOINIT .
* create one Context Node for Business Graphic
wd_this->create_context_node( ). * node, insert the data to the newly created context node
wd_this->insert_data_context( ).
endmethod.

进阶:案例五: Dynamic 创建 Business Graphic的更多相关文章

  1. docker和docker compose安装使用、入门进阶案例

    一.前言 现在可谓是容器化的时代,云原生的袭来,导致go的崛起,作为一名java开发,现在慌得一批.作为知识储备,小编也是一直学关于docker的东西,还有一些持续继承jenkins. 提到docke ...

  2. webpack4入门到进阶案例实战课程

    愿景:"让编程不在难学,让技术与生活更加有趣" 更多教程请访问xdclass.net 第一章 webpack4前言 第一集 webpack4入门到进阶案例实战课程介绍 简介:讲述w ...

  3. Spring进阶案例之注解和IoC案例

    Spring进阶案例之注解和IoC案例 一.常见的注解分类及其作用 从此前的基于xml的IoC开发案例和依赖注入案例中,我们可以将xml配置归纳为: <bean id="" ...

  4. Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式

    原创文章,同步发自作者个人博客,http://www.jasongj.com/java/nio_reactor/ Java I/O模型 同步 vs. 异步 同步I/O 每个请求必须逐个地被处理,一个请 ...

  5. J2EE进阶(十五)MyEclipse反向工程实现从数据库反向生成实体类之Hibernate方式

    J2EE进阶(十五)MyEclipse反向工程实现从数据库反向生成实体类之Hibernate方式   反向工程又称逆向工程.   开发项目涉及到的表太多,一个一个的写JAVA实体类很是费事.MyEcl ...

  6. Python进阶(十五)----面向对象之~继承(单继承,多继承MRO算法)

    Python进阶(十五)----面向对象之~继承 一丶面向对象的三大特性:封装,继承,多态 二丶什么是继承 # 什么是继承 # b 继承 a ,b是a的子类 派生类 , a是b的超类 基类 父类 # ...

  7. mybatis进阶案例之多表查询

    mybatis进阶案例之多表查询 一.mybatis中表之间的关系 在数据库中,实体型之间的关系主要有如下几种: 1.一对一 如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之 ...

  8. HTML5离线Web应用实战:五步创建成功

    [IT168 技术]HTML5近十年来发展得如火如荼,在HTML 5平台上,视频,音频,图象,动画,以及同电脑的交互都被标准化.HTML功能越来越丰富,支持图片上传拖拽.支持localstorage. ...

  9. 五种创建UIImage的类方法

    五种创建UIImage的类方法 UIImage有五个类方法,用来创建UIImage的.下面介绍一下每个类方法的作用和创建实例. 1.使用类方法imageNamed:创建 + (UIImage *)im ...

随机推荐

  1. Python之路Day9

    摘要: 协程 Select\Poll\Epoll异步IO与事件驱动 Python连接MySQL数据库操作 RabbitMQ队列 Redis\Memcached缓存 Paramiko Twsited网络 ...

  2. Error creating bean with name 'org.springframework.validation.beanvalidation.LocalValidatorFactory

    Error creating bean with name ‘org.springframework.validation.beanvalidation.LocalValidatorFactoryBe ...

  3. redis(四)redis与Mybatis的无缝整合让MyBatis透明的管理缓存

    redis的安装 http://liuyieyer.iteye.com/blog/2078093 redis的主从高可用  http://liuyieyer.iteye.com/blog/207809 ...

  4. mojo 接口返回键值对的json格式

    my $c = shift; use DBI; my %hash=(); my $dbUser='zabbix'; my $user="root"; my $passwd=&quo ...

  5. 在cmd窗口中查询android的sqlite3数据库表之步骤

    本文主要是写了一个android程序对sqlite3中数据库的employee表的插入.删除的操作,然后在cmd窗口中用sql命令查询employee表的操作过程. 1.第一步:首先把程序写好. 1. ...

  6. 给刚通过51入门的新人讲讲S12(MCS12XS128)与51的差别

    MCS51是keil也对应地做好了非常多,也就是有非常多对你而言是透明的,是你不必关心的,你所要接触的寄存器数量也非常小,在这个时候你很多其它是写函数,仅仅只是针对这个平台写C程序比在PC上写C控制台 ...

  7. Hiddenfield控件

    本文转自:http://www.cnblogs.com/weicleer/archive/2012/11/26/2788722.html ASP.NET2.0 HiddenField控件(1)2007 ...

  8. 我的Python成长之路---第一天---Python基础(作业1:登录验证)---2015年12月26日(雾霾)

    作业一:编写登录接口 输入用户名密码 认证成功系那是欢迎信息 输错三次后锁定 思路: 1.参考模型,这个作业我参考了linux的登录认证流程以及结合网上银行支付宝等锁定规则 1)认证流程参考的是Lin ...

  9. 分享非常有用的Java程序 (关键代码) (一)

    原文:分享非常有用的Java程序 (关键代码) (一)   分享一些非常有用的Java程序 (关键代码) ,希望对你有所帮助. 1.  得到当前方法的名字 String methodName = Th ...

  10. Learning Lua Programming (4) Cocos2d-x中Lua编程(一)

    刚开始接触cocos2d-x 下的Lua编程,主要参看了李华明大神的博客中的介绍,http://blog.csdn.net/xiaominghimi/article/category/1155088  ...