• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
^ω^SAp傻X^o^
博客园    首页    新随笔    联系   管理    订阅  订阅
WDA演练一:用户登陆界面设计(二)

一,登陆界面设计:

1.将系统编号灰显,默认初值

 

2.密码栏勾选密码显示,这样就不会明文显示在页面上了:

Init方法中添加默认值代码:

METHOD wddoinit .
  DATA lo_nd_zhis_user TYPE REF TO if_wd_context_node.
  DATA lo_el_zhis_user TYPE REF TO if_wd_context_element.
  DATA ls_zhis_user TYPE wd_this->element_zhis_user.
  DATA lv_sys TYPE wd_this->element_zhis_user-sys.
  lo_nd_zhis_user = wd_context->get_child_node( name = wd_this->wdctx_zhis_user ).
  lo_el_zhis_user = lo_nd_zhis_user->get_element( ).

*默认登陆系统为当前服务器系统
  IF lo_el_zhis_user IS INITIAL.
    EXIT.
  ENDIF.
  lv_sys = sy-mandt.
  lo_el_zhis_user->set_attribute(
    name =  `SYS`
    value = lv_sys ).

ENDMETHOD.

 

二、登陆验证:

1.新建函数组ZLY_PORTAL

定义全局结构用来存储用户数据:

2.新建函数ZLY_SET_LOGON将用户信息存到函数组全局中:

 

3.回到WDA里 新建MSG方法,视图中统一显示消息:

METHOD msg .
*   get message manager
  DATA lo_api_controller     TYPE REF TO if_wd_controller.
  DATA lo_message_manager    TYPE REF TO if_wd_message_manager.
  DATA message TYPE string.

  lo_api_controller ?= wd_this->wd_get_api( ).

  lo_message_manager = lo_api_controller->get_message_manager( ).

*   report message
  message = lo_message_manager->report_message(
      message_text              = msg
      message_type              = type ).

ENDMETHOD.

 4.定义登陆按钮事件,并做相关检查:

 

METHOD onactionlogon .
  DATA lo_nd_zhis_user TYPE REF TO if_wd_context_node.
  DATA lo_el_zhis_user TYPE REF TO if_wd_context_element.
  DATA ls_zhis_user TYPE wd_this->element_zhis_user.
  DATA:lv_len  TYPE i,
       lv_hash TYPE md5_fields-hash,
       gw_user TYPE zlyuser.

*   navigate from <CONTEXT> to <ZHIS_USER> via lead selection
  lo_nd_zhis_user = wd_context->get_child_node( name = wd_this->wdctx_zhis_user ).
  lo_el_zhis_user = lo_nd_zhis_user->get_element( ).
  IF lo_el_zhis_user IS INITIAL.
    EXIT.
  ENDIF.
  lo_el_zhis_user->get_static_attributes(
    IMPORTING
      static_attributes = ls_zhis_user ).

  IF ls_zhis_user-usern IS NOT INITIAL AND ls_zhis_user-pwd IS NOT INITIAL.
    lv_len = strlen( ls_zhis_user-pwd ).
    CALL FUNCTION 'MD5_CALCULATE_HASH_FOR_CHAR'
      EXPORTING
        data           = ls_zhis_user-pwd
        length         = lv_len
        version        = 1
      IMPORTING
        hash           = lv_hash
*     TABLES
*       DATA_TAB       =
      EXCEPTIONS
        no_data        = 1
        internal_error = 2
        OTHERS         = 3.
    IF sy-subrc <> 0.
      wd_this->msg( EXPORTING type = 3 msg = 'Fcuntion error!').
    ELSE.
      SELECT SINGLE * INTO gw_user FROM zlyuser WHERE userid = ls_zhis_user-usern AND passwd = lv_hash.
      IF sy-subrc = 0.
        CALL FUNCTION 'ZLY_SET_LOGON'
          EXPORTING
            iw_user = gw_user.
        ls_zhis_user-usern = gw_user-userid.
        ls_zhis_user-persnumber = gw_user-partner.
        ls_zhis_user-augrp = gw_user-user_group.
        lo_el_zhis_user->set_static_attributes(
           static_attributes = ls_zhis_user ).

        wd_this->fire_tomain_plg( ).
      ELSE.
        wd_this->msg( EXPORTING type = 3 msg = 'User name OR Password error!').
      ENDIF.
    ENDIF.
  ELSE.
    wd_this->msg( EXPORTING type = 3 msg = 'Please fill user and password!').
  ENDIF.

ENDMETHOD.

 

^_^很多人都把资料锁进了note里,以后还怎么百度呢^_^
posted on 2019-06-27 16:32  ^ω^SAP傻X^o^  阅读(685)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3