效果图:

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. IP数据包结构

    Linux 网络编程——IP 数据报格式详解 http://www.linuxidc.com/Linux/2015-04/116149.htm

  2. 【HTML相关】iframe+javascript实现一个表单提交后多个处理文件按序处理

    最近在弄一个网页的问题,总结如下. [问题描述] 页面中包括以下几个部分:1)表单form,供用户输入图片文件:2)iframe1,显示a.php文件的内容,a.php接收客户端图片并保存,后台程序处 ...

  3. iOS使用自定义字体

    http://blog.csdn.net/heartofthesea/article/details/22289399 1.将准备好的字体文件加入项目中 2.打开Build Phases—Copy B ...

  4. wget -r -nc -np "http://www.zhihu.com/"

    下载网站所有 -r,  --recursive          specify recursive download. -nc, --no-clobber              skip dow ...

  5. Hadoop HDFS (3) JAVA訪问HDFS之二 文件分布式读写策略

    先把上节未完毕的部分补全,再剖析一下HDFS读写文件的内部原理 列举文件 FileSystem(org.apache.hadoop.fs.FileSystem)的listStatus()方法能够列出一 ...

  6. ASP.NET给Table动态添加删除行,并且得到控件的值

    ASP.NET给Table动态添加控件并且得到控件的值 由于跟老师做一个小的项目,可是我自己又不太懂js,所以一直为动态建立表格并且能动态的取值和赋值感到苦恼.起初在网上找到了一些js资源,解决了动态 ...

  7. java--进步学习IO

    import java.io.*; public class Demo1 { public static void main(String []args) throws Exception{ File ...

  8. C# 使用IENUMERABLE,YIELD

    C# 使用IENUMERABLE,YIELD 前言 在上篇文章中我得出结论,遍历迭代器修改迭代器中项目的值未生效,是因为使用了yield return,并且每次遍历迭代器都执行返回迭代器的方法.这篇文 ...

  9. DNS与网站优化

    点就出现了这样的问题,导致了几小时的访问失败,所以选择优秀的DNS服务器势必关系网站发展的生死存亡.本文做以下分析.     选择良好的DNS服务器要从选择域名注册商说起,在注册域名时多数人看中的仅仅 ...

  10. hdu4620 Fruit Ninja Extreme

    Fruit Ninja Extreme Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...