进阶:案例五: Dynamic 创建 Business Graphic
效果图:

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的更多相关文章
- docker和docker compose安装使用、入门进阶案例
一.前言 现在可谓是容器化的时代,云原生的袭来,导致go的崛起,作为一名java开发,现在慌得一批.作为知识储备,小编也是一直学关于docker的东西,还有一些持续继承jenkins. 提到docke ...
- webpack4入门到进阶案例实战课程
愿景:"让编程不在难学,让技术与生活更加有趣" 更多教程请访问xdclass.net 第一章 webpack4前言 第一集 webpack4入门到进阶案例实战课程介绍 简介:讲述w ...
- Spring进阶案例之注解和IoC案例
Spring进阶案例之注解和IoC案例 一.常见的注解分类及其作用 从此前的基于xml的IoC开发案例和依赖注入案例中,我们可以将xml配置归纳为: <bean id="" ...
- Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式
原创文章,同步发自作者个人博客,http://www.jasongj.com/java/nio_reactor/ Java I/O模型 同步 vs. 异步 同步I/O 每个请求必须逐个地被处理,一个请 ...
- J2EE进阶(十五)MyEclipse反向工程实现从数据库反向生成实体类之Hibernate方式
J2EE进阶(十五)MyEclipse反向工程实现从数据库反向生成实体类之Hibernate方式 反向工程又称逆向工程. 开发项目涉及到的表太多,一个一个的写JAVA实体类很是费事.MyEcl ...
- Python进阶(十五)----面向对象之~继承(单继承,多继承MRO算法)
Python进阶(十五)----面向对象之~继承 一丶面向对象的三大特性:封装,继承,多态 二丶什么是继承 # 什么是继承 # b 继承 a ,b是a的子类 派生类 , a是b的超类 基类 父类 # ...
- mybatis进阶案例之多表查询
mybatis进阶案例之多表查询 一.mybatis中表之间的关系 在数据库中,实体型之间的关系主要有如下几种: 1.一对一 如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之 ...
- HTML5离线Web应用实战:五步创建成功
[IT168 技术]HTML5近十年来发展得如火如荼,在HTML 5平台上,视频,音频,图象,动画,以及同电脑的交互都被标准化.HTML功能越来越丰富,支持图片上传拖拽.支持localstorage. ...
- 五种创建UIImage的类方法
五种创建UIImage的类方法 UIImage有五个类方法,用来创建UIImage的.下面介绍一下每个类方法的作用和创建实例. 1.使用类方法imageNamed:创建 + (UIImage *)im ...
随机推荐
- 字符设备驱动4: ioremap
#define GPIO_OFT(x) ((x) - 0x56000000)#define GPFCON (*(volatile unsigned long *)(gpio_va + GPIO_OFT ...
- BZOJ 3544: [ONTAK2010]Creative Accounting( BST )
题意 : 一段序列 , 求一段子序列和取余 M 的最大值 其实是一道水题... 前缀和 , 然后就是找 ( sum( r ) - sum( l ) ) % M 的最大值 . 考虑一个 sum( r ) ...
- javascript面向对象创建高级 Web 应用程序
目录 JavaScript 对象是词典 JavaScript 函数是最棒的 构造函数而不是类 原型 静态属性和方法 闭包 模拟私有属性 从类继承 模拟命名空间 应当这样编写 JavaScript ...
- (Problem 7)10001st prime
By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. ...
- thiscall仅仅应用于“C++”成员函数(this指针存放于CX寄存器,参数从右到左压)
_stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈.VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上" ...
- JQuery插件使用小结
JQuery插件使用小结
- 在 Windows 下远程桌面连接 Linux - VNC 篇
VNC是由AT&T试验室开发,是一款优秀的远程控制工具软件,后来以GPL授权的形式开源.经过几年的发展,现在的VNC已经不单指某个软件,而是一类软件的通称.下面介绍Linux下常用的两个VNC ...
- Datagridview列绑定数据
属性最下面的Column项: 把每一列的字段绑定,更改显示的标题. 数据绑定代码: string sql = "select IncomeExpendTypeID , TypeName , ...
- [转]CentOS_yum的详细使用方法
yum 是什么yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题.它能便于管理大量系统的更新问题 yum特点可以 ...
- <转>一个最不可思议的MySQL死锁分析
1 死锁问题背景 1 1.1 一个不可思议的死锁 1 1.1.1 初步分析 3 1.2 如何阅读死锁日志 3 2 死锁原因深入剖析 4 2.1 Delete操作的加锁逻辑 4 2.2 死锁预防策略 5 ...