WDA学习(25):DateNavigator使用
1.18 UI Element:Date Navigator使用
本实例测试创建Date Navigator;
1.创建Component,View: V_DATE_NAVIGATOR;
2.创建Context节点;
创建NODE: NODE_DATENAV, Cardinality:1..1;
创建Attribute:SELECTION_MODE,类型WDUI_DATE_SELECTION_MODE;
创建Attribute: FIRST_DAY_OF_WEEK,类型WDUI_DAY_OF_WEEK;
创建Attribute: FIRST_SELECTED_DATE,类型D;
创建Attribute:LAST_SELECTED_DATE,类型D;
创建Attribute: MONTH_PER_COLUMN,类型I;
创建Attribute: MONTH_PER_ROW,类型I;
创建Attribute: START_WITH,类型D;
创建NODE:NODE_MARKING,Cardinality:0..n;
创建Attribute:DATE,类型D;

3.创建Layout UI Element;
创建UI Element:Tray,ID:TRAY1,包含一些输入参数UI Element;
创建UI Element:Toolbar;
创建UI Element:ToolbarButton,绑定Action:APPLY;
创建UI Element:Label;
创建UI Element:DropDownByKey,ID: INP,selectedKey绑定Context的Attribute: V_DATE_NAVIGATOR.NODE_DATENAV.FIRST_DAY_OF_WEEK;
创建UI Element:InputField,ID:INP1,value绑定Context的Attribute: V_DATE_NAVIGATOR.NODE_DATENAV.FIRST_SELECTED_DATE;
创建UI Element:InputField,ID:INP2,value绑定Context的Attribute: V_DATE_NAVIGATOR.NODE_DATENAV.LAST_SELECTED_DATE;
创建UI Element:InputField,ID:INP3,value绑定Context的Attribute: V_DATE_NAVIGATOR.NODE_DATENAV.MONTH_PER_COLUMN;
创建UI Element:InputField,ID:INP4,value绑定Context的Attribute:
V_DATE_NAVIGATOR.NODE_DATENAV.MONTH_PER_ROW;
创建UI Element:DropDownByKey,ID:INP5,selectedKey绑定Context的Attribute:
V_DATE_NAVIGATOR.NODE_DATENAV.SELECTION_MODE;
创建UI Element:InputField,ID:INP6,value绑定Context的Attribute: V_DATE_NAVIGATOR.NODE_DATENAV.START_WITH;
创建UI Element:DateNavigator;
设置Properties
firstDayOfWeek:绑定Attribute,V_DATE_NAVIGATOR.NODE_DATENAV.FIRST_DAY_OF_WEEK;
firstSelectedDate:绑定Attribute,V_DATE_NAVIGATOR.NODE_DATENAV.FIRST_SELECTED_DATE;
lastSelectedDate:绑定Attribute,V_DATE_NAVIGATOR.NODE_DATENAV.LAST_SELECTED_DATE;
monthsPerColumn:绑定Attribute,V_DATE_NAVIGATOR.NODE_DATENAV.MONTH_PER_COLUMN;
monthsPerRow:绑定Attribute,V_DATE_NAVIGATOR.NODE_DATENAV.MONTH_PER_ROW;
selectionMode:绑定Attribute,V_DATE_NAVIGATOR.NODE_DATENAV.SELECTION_MODE;
startsWith:绑定Attribute,V_DATE_NAVIGATOR.NODE_DATENAV.START_WITH;
onDaySelect:绑定Action,SEL_DAY;
onMonthSelect:绑定Action,SEL_MONTH;
onStartDateChanged:绑定Action,CHANGE_START_DAY;
onWeekSelect:绑定Action,SEL_WEEK;
创建UI Element:DateNavigatorMarking;
设置Properties
dataSource:绑定V_DATE_NAVIGATOR.NODE_MARKING;
date:绑定NODE_MARKING.DATE;

4.创建Method页签方法;
创建INIT_PROPER方法,初始化DateNavigator的属性参数,WDDOINIT方法中调用;
代码实例:
DATA:lo_node TYPE REF TO if_wd_context_node.
DATA:lo_element TYPE REF TO if_wd_context_element.
DATA:lv_date TYPE D. lv_date = sy-datum.
"获取节点
lo_node = wd_context->get_child_node( wd_this->wdctx_node_datenav ).
lo_element = lo_node->get_element( ).
lo_element->set_attribute(
EXPORTING
name = 'FIRST_SELECTED_DATE'
value = lv_date
).
lo_element->set_attribute(
EXPORTING
name = 'LAST_SELECTED_DATE'
value = lv_date
).
lo_element->set_attribute(
EXPORTING
name = 'MONTH_PER_COLUMN'
value = 1
).
lo_element->set_attribute(
EXPORTING
name = 'MONTH_PER_ROW'
value = 2
).
lo_element->set_attribute(
EXPORTING
name = 'START_WITH'
value = lv_date
).
实现Action: SEL_DAY,日期选择;
DATA:lo_node TYPE REF TO if_wd_context_node.
DATA:lo_element TYPE REF TO if_wd_context_element.
DATA:lt_marking TYPE wd_this->elements_node_marking.
DATA:ls_marking TYPE wd_this->element_node_marking.
DATA:lv_date TYPE string.
"获取选择的日期
lv_date = wdevent->get_string( name = 'DAY' ).
"获取节点
lo_node = wd_context->get_child_node( wd_this->wdctx_node_marking ).
lo_node->get_static_attributes_table( IMPORTING table = lt_marking ). READ TABLE lt_marking INTO ls_marking WITH KEY date = lv_date.
IF sy-subrc = 0.
DELETE TABLE lt_marking FROM ls_marking.
ELSE.
ls_marking-date = lv_date.
APPEND ls_marking TO lt_marking.
ENDIF.
lo_node->bind_table( new_items = lt_marking set_initial_elements = abap_true ).
实现Action:SEL_MONTH,选择月份;
DATA:lo_event TYPE REF TO cl_wd_custom_event.
DATA:lv_year TYPE string.
DATA:lv_month TYPE string.
lo_event = wdevent.
lv_year = wdevent->get_string( name = 'YEAR' ).
lv_month = wdevent->get_string( name = 'MONTH' ).
lv_year = 'select month:' && lv_year && lv_month.
wd_comp_controller->show_msg( msg = lv_year msg_type = 'S' ).
实现Action: SEL_WEEK,选择周;
DATA:lo_event TYPE REF TO cl_wd_custom_event.
DATA:lv_year TYPE string.
DATA:lv_week TYPE string.
DATA:lv_first_day TYPE string. lo_event = wdevent.
lv_year = wdevent->get_string( name = 'YEAR' ).
lv_week = wdevent->get_string( name = 'WEEK' ).
lv_first_day = wdevent->get_string( name = 'FIRST_DAY' ).
lv_year = 'select week:' && lv_year && '年第' && lv_week && '周' && 'first day:' && lv_first_day.
wd_comp_controller->show_msg( msg = lv_year msg_type = 'S' ).
实现Action:CHANGE_START_DAY,修改start day;
代码实例:
DATA:lo_event TYPE REF TO cl_wd_custom_event.
DATA:lv_date TYPE string. lv_date = wdevent->get_string( name = 'START_DATE' ).
lv_date = 'change start date:' && lv_date.
wd_comp_controller->show_msg( msg = lv_date msg_type = 'S' ).
5.执行显示

WDA学习(25):DateNavigator使用的更多相关文章
- django学习-25.admin管理后台里:把表名称和表字段名称的展示值都由英文显示改为由中文显示
目录结构 1.前言 2.完整的操作步骤 2.1.第一步:修改模型类Article 2.2.第二步:重启服务 2.3.第三步:退出登录并再次成功登陆admin管理后台 2.4.第四步:查看最新的表名称展 ...
- iOS 学习 - 25 ImageIO 播放 GIF
一.给原生的 UIImageView 添加类别来支持 GIF 播放 GIF 动态图片文件中包含了一组图片及信息,信息主要记录着每一帧图片播放的时间,我们如果获取到了 gif 文件中所有的图片同时又获取 ...
- 【Java EE 学习 25 下】【网上图书商城js小技术点总结】
1.日历控件的使用 日历控件源代码: /** * add auto hide when mouse moveout * * @version 1.0.1 * @date 2010-11-23 * @a ...
- 【Java EE 学习 25 上】【网上图书商城项目实战】
一.概述 1.使用的jdk版本:1.6 2.java EE版本:1.6 3.指导老师:传智播客 王建 二.小项目已经实现的功能 普通用户: 1.登陆 2.注册 3.购物 4.浏览 管理员用户(全部管理 ...
- [游戏学习25] MFC 橡皮筋画线效果
>_<:这是给出窗口内外不同情况的处理展示的例子. >_<:MouseCap.h #include<afxwin.h> class CMyApp :public C ...
- C++学习25 纯虚函数和抽象类
在C++中,可以将成员函数声明为纯虚函数,语法格式为: ; 纯虚函数没有函数体,只有函数声明,在虚函数声明结尾加上=0,表明此函数为纯虚函数. 最后的=0并不表示函数返回值为0,它只起形式上的作用,告 ...
- swift 学习- 25 -- 协议 02
// 通过扩展添加协议一致性 // 即便无法修改源代码, 依然可以通过扩展 令已有类型遵循并符合协议, 扩展可以为已有类型添加属性, 方法, 下标 以及构造器, 因此可以符合协议中的相应要求 // 注 ...
- Python学习(25):Python执行环境
转自 http://www.cnblogs.com/BeginMan/p/3191856.html 一.python特定的执行环境 在当前脚本继续进行 创建和管理子进程 执行外部命令或程序 执行需要输 ...
- Python学习-25.Python中的分数
在Python中,不止有浮点数(float),而且还有分数(Fraction)这个类型. 要使用分数,必须引入一个模块. import fractions 然后就可以声明一个分数了 x = fract ...
- python学习(25) BeautifulSoup介绍和实战
BeautifulSoup是python的html解析库,处理html非常方便 BeautifulSoup 安装 pip install beautifulsoup4 BeautifulSoup 配合 ...
随机推荐
- mybatis批量查询
<foreach collection="list" item="item" open="(" separator=",&q ...
- CentOS7 搭建 PXE 安装系统
1. PXE介绍 2. 服务的搭建 2.1 DHCP服务搭建 2.1.1 安装DHCP软件包 2.1.2 修改dhcp配置文件 2.1.3 开启DHCP服务 2.1.4 查看dhcp服务是否开启 2. ...
- Windows 11 调整工具 TweakNow WinSecret for Windows 11 3.2.0 中文汉化版
Windows 11 调整工具 TweakNow WinSecret for Windows 11 中文版由大眼仔旭(www.dayanzai.me)发布.适用于 Windows 11 的 Tweak ...
- PostgreSQL权限管理
一旦一个对象被创建,它会被分配一个所有者.所有者通常是执行创建语句的角色.对于大部分类型的对象,初始状态下只有所有者(或者超级用户)能够对该对象做任何事情.为了允许其他角色使用它,必须分配权限. 1 ...
- HCIP-进阶实验03-网络流量路径控制
HCIP-进阶实验03-网络流量路径控制 实验需求 某城域网网络环境部署规划如图所示,该网络通过OSPF协议进行部署设计,分为四个区域,分别为骨干区域0.普通区域1.2.3.其中普通区域1为特殊区域N ...
- python读取word文档,插入mysql数据库实例
表格内容如下: 1.实现批量导入word文档,取文档标题中的数字作为编号 2.除取上面打钩的内容需要匹配出来入库入库,其他内容全部直接入库mysql # wuyanfeng# -*- coding:u ...
- DDL数据定义--Hive中数据可和表的基本操作(增删改查)
数据库 创建数据库: CREATE DATABASE [ IF NOT EXISTS ] database_name *****IF NOT EXISTS进行判断,避免创建的数据库已经存在的错误 创 ...
- sentinel监控数据持久化&本地测试
官方文档 https://sentinelguard.io/zh-cn/ wiki: 在生产环境中使用-Sentinel 推荐方案:持久化到 时序数据库InfluxDB : 结合Grafana 可 ...
- pytest-2 之前后置及 conftest.py+fixture+yield实现用例前后置
pytest测试用例及类级别的前置,可以和unittest一样进行定义,也可以把该前置方法或类定义到conftest.py里,而在需要前置的方法的参数里加上该前置名作为参数: pytest有两种方式来 ...
- MySQL---MGR保姆版
一.环境清理: 三台机器都做: 1.修改主机名 2.修改/etc/hosts文件 3.关闭和禁用防火墙 4.关闭和禁用SELinux 5.生成密钥对 6.传输密钥对 7.验证免密登陆 yum remo ...