当前位置: 首页 > ops >正文

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(EXPORTINGname = 'FIRST_SELECTED_DATE'value = lv_date).lo_element->set_attribute(EXPORTINGname = 'LAST_SELECTED_DATE'value = lv_date).lo_element->set_attribute(EXPORTINGname = 'MONTH_PER_COLUMN'value = 1).lo_element->set_attribute(EXPORTINGname = 'MONTH_PER_ROW'value = 2).lo_element->set_attribute(EXPORTINGname = '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.执行显示

 

http://www.xdnf.cn/news/11379.html

相关文章:

  • Android 三方APP调用系统隐藏API
  • 什么是可视化编程?为什么它如此重要?
  • 电脑C盘不知不觉满了?学会这6种解决方法!
  • 51 单片机基础
  • 手把手教你Apache2.4 + PHP8.39的安装(windows)及避坑问题点
  • 字节跳动-后台开发岗 面经
  • Model、Map、ModelAndView、HttpServletRequest区别
  • 更好的Java虚拟机Zing: 更好的性能,无停顿,更快的启动
  • 腾讯云 AI 代码助手保姆级使用教程
  • Sql-server 2008的安装
  • fdsfds
  • Git克隆操作
  • 【抓包工具】HttpWatch(功能详细介绍)
  • PulseAudio 设计和实现浅析
  • APB协议解读及历代协议对比
  • System.currentTimeMillis()用法以及计算方式
  • 医学案例|配对样本t检验
  • Java IO流操作(FileInputStream、ByteArrayInputStream、ObjectInputStream)
  • flash 小游戏大全
  • Android studio ListView应用设计
  • Linux修改文件名的三种方法分享
  • 虚拟局域网技术
  • LT9211 单路LVDS转双路LVDS,成熟方案,提供技术支持
  • jQuery-ui插件datepicker的参数使用详解
  • 请你记住这3款国产软件,免费又实用,它们值得收藏
  • 数据结构--抽象数据类型三元组Triplet的表示和实现
  • 网络安全行业名词_失陷主机(1)
  • DBeaver工具-虚谷数据库各级备份恢复
  • 宝塔 Linux centos Workerman换域名步骤
  • Java基础知识自学指南(一)Java快速入门