zoukankan      html  css  js  c++  java
  • 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.
  • 相关阅读:
    异步加载JS
    解决Vue刷新一瞬间出现样式未加载完或者出现Vue代码问题
    什么是NaN?它的类型是什么?如何可靠的测试一个值是否等于NaN?
    JS快速获取图片宽高的方法
    为什么操作dom会消耗性能
    localstorage的浏览器支持情况
    mongodb Windows系统下安装卡死问题
    正则表达式
    CSS Hack
    css中cursor(光标类型)
  • 原文地址:https://www.cnblogs.com/sapSB/p/11097911.html
Copyright © 2011-2022 走看看